Skip to content

Workflow Nodes

Internal tools for completing, failing, and managing workflow node execution.

Full name: campaignstack_complete_node

workflows:write Idempotent

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.

NameTypeRequiredDefaultDescription
entryIdstringYes(min length: 1)
nodeIdstringYes(min length: 1)
workflowIdstringYes(min length: 1)
leadIdstringYes(min length: 1)
payloadobjectNo
linkedinAccountIdstringNo

Full name: campaignstack_fail_node

workflows:write Idempotent

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.

NameTypeRequiredDefaultDescription
entryIdstringYes(min length: 1)
nodeIdstringYes(min length: 1)
workflowIdstringYes(min length: 1)
leadIdstringYes(min length: 1)
errorstringYes(min length: 1)
errorTypeauth_expired | rate_limit | not_connected | genericNo
linkedinAccountIdstringNo

Full name: campaignstack_store_conversation

workflows:write Idempotent

Store sent/received LinkedIn messages in the conversations table. Deduplicates against existing messages (same sender + text within 60s = skip). Creates a new conversation if none exists for the linkedinAccountId + leadId pair. Returns the number of messages stored and skipped.

NameTypeRequiredDefaultDescription
leadIdstringYes(min length: 1)
linkedinAccountIdstringYes(min length: 1)
workflowIdstringYes(min length: 1)
messagesobject[]Yes

Full name: campaignstack_extract_post_engagements

content:write

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 and scrapes via Voyager GraphQL. Returns counts of extracted reactions, comments, and reposts.

NameTypeRequiredDefaultDescription
postUrlstringYes(min length: 1)
authorNamestringNo
contentSnippetstringNo
reactionCountnumberNo
commentCountnumberNo