Workflow Nodes
Internal tools for completing, failing, and managing workflow node execution.
Tools (5)
Section titled “Tools (5)”complete_node
Section titled “complete_node”Full name: campaignstack_complete_node
Report successful completion of a workflow node for a lead. Marks the lead entry as COMPLETED, pushes the lead to the next node(s) via edges, and logs the action for audit. Returns the IDs of next nodes the lead was pushed to.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
entryId | string | Yes | — | (min length: 1) |
payload | object | No | — |
fail_node
Section titled “fail_node”Full name: campaignstack_fail_node
Report failure of a workflow node for a lead. Marks the lead entry as FAILED with an error message. For auth_expired: reverts lead to WAITING and marks LinkedIn account as expired. For rate_limit: auto-pauses the action type with a 1-hour cooldown. Use campaignstack_complete_node for successful completions.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
entryId | string | Yes | — | (min length: 1) |
error | string | Yes | — | (min length: 1) |
errorType | auth_expired | rate_limit | not_connected | generic | No | — |
store_conversation
Section titled “store_conversation”Full name: campaignstack_store_conversation
Store sent/received LinkedIn messages in the linkedinConversations table. Deduplicates against existing messages (same senderProfileUrn + body within 60s = skip). Creates a new conversation record if none exists for the accountId + leadId pair. Returns the number of messages stored and skipped.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
leadId | string | Yes | — | (min length: 1) |
leadSource | global | private | No | — | Defaults to ‘global’. Pass ‘private’ for workspace-private leads so the conversation links to the right record. |
accountId | string | Yes | — | (min length: 1) |
threadId | string | No | — | |
messages | object[] | Yes | — |
escalate_to_human
Section titled “escalate_to_human”Full name: campaignstack_escalate_to_human
Escalate a lead to human review from a reactive-responder agent. Creates a pending_review notification in the workspace so a team member can follow up. The lead stays parked at the reactive node — do NOT reply when escalating (they are mutually exclusive). Use this when the conversation requires human judgement (e.g. pricing questions, sensitive topics, complex objections).
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
nodeId | string | Yes | — | (min length: 1) |
workflowId | string | Yes | — | (min length: 1) |
leadId | string | Yes | — | (min length: 1) |
reason | string | No | — |
extract_post_engagements
Section titled “extract_post_engagements”Full name: campaignstack_extract_post_engagements
Extract all engagement data (reactions, comments, reposts) from a LinkedIn post. Must be called AFTER using browser tools to click reactions count, repost count, and sorting comments to ‘Most Recent’. The extraction reads intercepted API data from the current browser session via Voyager GraphQL. Returns counts of extracted reactions, comments, and reposts.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
postUrl | string | Yes | — | (min length: 1) |
authorName | string | No | — | |
contentSnippet | string | No | — |