{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Workflows","projectTitle":"Frontline Documentation","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"workflows","__idx":0},"children":["Workflows"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Workflow"]}," is an automation graph that runs at the account level — not tied to any single agent. Workflows fire on triggers (conversation events, schedules, incoming webhooks), execute a graph of nodes, and can call external APIs, transform data, write to Tables, send messages, etc."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If a Flow is \"what the agent says next\", a Workflow is \"what happens around the agent\"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"identity","__idx":1},"children":["Identity"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Notes"},"children":["Notes"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["number"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["workflowId"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["description"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["enum"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ACTIVE"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DRAFT"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAUSED"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ARCHIVED"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["triggerType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["enum?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["E.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONVERSATION_ENDED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONVERSATION_STARTED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SCHEDULED"]},", etc."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["runsCount"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["number"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Total executions."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["runsFailedCount"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["number"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Total failed executions."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lastRunDate"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ISO timestamp of the most recent run."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["liveSnapshotId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Published snapshot."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["draftSnapshotId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Working draft."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-graph","__idx":2},"children":["The graph"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"node-types","__idx":3},"children":["Node types"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRIGGER"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Event-based entry point (conversation ended, contact created, …)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SCHEDULED_TRIGGER"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Cron-style entry point."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WEBHOOK"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Entry point fed by an ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/concepts/incoming-webhooks"},"children":["Incoming Webhook"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["API"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Call an external HTTP endpoint."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TOOLS_AI"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Let the AI choose a Tool to call."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONDITIONAL_ROUTING"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Branch based on AI-evaluated conditions."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AI_CAPTURE"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Extract structured data from text using an LLM."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DATA_TRANSFORMER"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Reshape data via prompt."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DYNAMIC_TABLES"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create, update, delete, search, or change the record type of records in a Table or Object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREATE_RECORD_ACTIVITY"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Log a manual activity (note, call, meeting, email, WhatsApp) on a specific Object record."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ITERATION"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Loop over an array variable (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["body"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["empty"]}," handles)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BREAK"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Exit the current loop early and continue on the loop's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]}," path."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AUTOMATION_STATUS"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Set another automation live, draft, or toggle its status."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SEND_MESSAGE"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Push a message to a conversation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SEND_WHATSAPP_MESSAGE"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Send a WhatsApp Business template to a phone number or People record."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSCRIPTION"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Transcribe an audio URL."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FILE_ANALYSIS"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OCR + AI analysis of a file from a URL."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each node carries ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nodeId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["alias"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["position"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]},", and a typed ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," payload."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Reference validation"]},": on create/update, the API validates every cross-resource reference inside ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["aiModelId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customToolIds"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tableId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recordTypeId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["triggeredByAgentIds[]"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["triggerByWebhookIds[]"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["connectedAccountId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["knowledgeBaseIds"]},", etc. If any referenced id does not exist or does not belong to your account, the request returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400 bad_request"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details.issues[].code === \"not_found\""]}," and the node is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," persisted. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/errors#example-node-references"},"children":["Errors"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Schema-level checks also apply to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SCHEDULED_TRIGGER"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cronExpression"]}," validated by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cron-validate"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["timezone"]}," against IANA), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WEBHOOK"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["API"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["url"]}," must be a valid URL)."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"runtime-variables","__idx":4},"children":["Runtime variables"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Automation workflows expose ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["one runtime variable per node"]},", with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name = nodeId"]},". A node ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api_1"]}," can be referenced downstream as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{api_1}"]},". This is in addition to explicitly declared ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/concepts/workflow-variables"},"children":["Workflow Variables"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Interpolable fields include the same set as Flows, plus:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["AI Capture: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prompt"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["instructions"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Data Transformer: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prompt"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tools AI: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["instructions"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prompt"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Transcription: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["audioUrl"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create Record Activity: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rowId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["content"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["WhatsApp template variables: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["templateVariables.header"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["body"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["buttons"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Capturing specific values."]}," The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["API"]}," node can extract values from its JSON response into named variables via its ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variables"]}," field (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ key, value, fullResponse }"]},"), and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AI_CAPTURE"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TOOLS_AI"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSCRIPTION"]}," populate variables via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["captureVariables"]},". ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["All capture targets must reference a variable that already exists"]}," (create it first via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /workflows/{workflowId}/variables"]},"). In ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["captureVariables"]}," you may reference it by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ \"name\": \"<var>\" }"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ \"id\": <id> }"]}," — the API resolves and links it to the canonical ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ id, name, description }"]},"; an unknown name/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key"]}," returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]},". For the API node's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["value"]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["path syntax"]}," (dot/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[n]"]}," property access into the JSON response), see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/concepts/flows#api-node-response-paths-value"},"children":["Flows → API node response paths"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create_record_activity-node","__idx":5},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREATE_RECORD_ACTIVITY"]}," node"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Logs a manual activity on a specific Object record at workflow runtime."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"nodeId\": \"node_create_activity_1\",\n    \"type\": \"CREATE_RECORD_ACTIVITY\",\n    \"position\": { \"positionX\": 640, \"positionY\": 0 },\n    \"data\": {\n        \"type\": \"CREATE_RECORD_ACTIVITY\",\n        \"recordTypeId\": 5,\n        \"rowId\": \"{contact_row_id}\",\n        \"activityType\": \"PHONE_CALL\",\n        \"content\": \"Llamada de seguimiento: {call_summary}\"\n    }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Required"},"children":["Required"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Notes"},"children":["Notes"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recordTypeId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["✅"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Numeric id of the Object's record type. Validated: must exist and belong to your account."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rowId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["✅"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["MongoDB ObjectId of the record to log on. Supports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{varName}"]}," interpolation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["activityType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["✅"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["One of: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NOTE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EMAIL"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PHONE_CALL"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MEETING"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WHATSAPP"]},". Validated at save time."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["content"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["✅"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Activity body text. Supports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{varName}"]}," interpolation."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Validation:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recordTypeId"]}," must point to a real record type on an Object (not a Table) in your account. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["activityType"]}," must be a valid enum value. Variables in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rowId"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["content"]}," must exist — the API returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}," with the offending variable name if any reference is unknown."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"iteration-loop-node","__idx":6},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ITERATION"]}," (Loop) node"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Iterates over an array stored in a workflow variable. The wire type is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ITERATION"]}]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"nodeId\": \"node_loop_1\",\n    \"type\": \"ITERATION\",\n    \"alias\": \"Loop\",\n    \"position\": { \"positionX\": 320, \"positionY\": 0 },\n    \"data\": {\n        \"type\": \"ITERATION\",\n        \"variableName\": \"items\",\n        \"variablePath\": \"data.items\",\n        \"continueOnError\": false\n    }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Notes"},"children":["Notes"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variableName"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Name or alias of an existing workflow variable. Must resolve to an array at runtime."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variablePath"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional dot path inside the variable (e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.items"]}," when the variable holds a full API response)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["continueOnError"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", a failed item inside the loop is skipped. When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},", any failure stops the automation."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Edges:"]}," connect three outgoing handles — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["body"]}," (for-each), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]}," (after all items), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["empty"]}," (null/empty list; does ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," route to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]},"). Inside the loop, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{<loopNodeId>.item}"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{<loopNodeId>.index}"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{<loopNodeId>.length}"]}," are available (use the loop node's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nodeId"]}," from the graph). ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{<loopNodeId>.item}"]}," is the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["entire"]}," current item (JSON if object) — there is no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{<loopNodeId>.item.field}"]}," dot-access. DYNAMIC_TABLES ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["SEARCH"]}," stores a top-level array of rows; leave ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variablePath"]}," empty when looping that output."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"break-node","__idx":7},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BREAK"]}," node"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Exits the current loop and continues on the loop's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]}," path. Place only inside a Loop ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["body"]}," branch; outside an active loop the automation fails."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"nodeId\": \"node_break_1\",\n    \"type\": \"BREAK\",\n    \"position\": { \"positionX\": 640, \"positionY\": 0 },\n    \"data\": { \"type\": \"BREAK\" }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"automation_status-node","__idx":8},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AUTOMATION_STATUS"]}," node"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Changes another automation's status (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SET_ACTIVE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SET_DRAFT"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TOGGLE"]},"). Does not publish draft graph changes."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"nodeId\": \"node_status_1\",\n    \"type\": \"AUTOMATION_STATUS\",\n    \"position\": { \"positionX\": 320, \"positionY\": 0 },\n    \"data\": {\n        \"type\": \"AUTOMATION_STATUS\",\n        \"automationId\": 1,\n        \"action\": \"SET_ACTIVE\"\n    }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["automationId"]}," is validated at save time — it must exist in your account."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"send_whatsapp_message-node","__idx":9},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SEND_WHATSAPP_MESSAGE"]}," node"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sends a WhatsApp Business template message. Distinct from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SEND_MESSAGE"]}," (conversation push)."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"nodeId\": \"node_wa_1\",\n    \"type\": \"SEND_WHATSAPP_MESSAGE\",\n    \"position\": { \"positionX\": 320, \"positionY\": 0 },\n    \"data\": {\n        \"type\": \"SEND_WHATSAPP_MESSAGE\",\n        \"recipientMode\": \"PHONE_NUMBER\",\n        \"personName\": \"{first_name} {last_name}\",\n        \"phoneNumber\": \"{phone_number}\",\n        \"phoneNumberId\": \"1132681309928224\",\n        \"template\": \"hello_world\",\n        \"templateVariables\": { \"body\": { \"1\": \"{first_name}\" } }\n    }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Notes"},"children":["Notes"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recipientMode"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PHONE_NUMBER"]}," (default) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PEOPLE_RECORD"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["personName"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PHONE_NUMBER"]}," mode. Supports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{var}"]}," interpolation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phoneNumber"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PHONE_NUMBER"]}," mode. Full international format. Supports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{var}"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["peopleRowId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PEOPLE_RECORD"]}," mode. People record ObjectId. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{var}"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{<loopNodeId>.item}"]}," when looping scalars — not ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{<loopNodeId>.item.id}"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phoneNumberId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Meta WhatsApp Business phone number id. Must exist and have an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["assistantId"]}," (validated)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["template"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Approved template name."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["templateVariables"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maps template parameter ids to values (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["body"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["header"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["buttons"]},")."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Resolve ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phoneNumberId"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["template"]}," via the read-only integrations endpoints below."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"integrations-read-only","__idx":10},"children":["Integrations (read-only)"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Verb"},"children":["Verb"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Path"},"children":["Path"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/integrations"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List connected WhatsApp numbers, Instagram accounts, Messenger pages"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/integrations/whatsapp/templates"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List APPROVED WhatsApp templates from Meta for this account"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SEND_WHATSAPP_MESSAGE"]},", use a WhatsApp number where ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["canSendMessages"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," (an assistant is assigned)."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"operations","__idx":11},"children":["Operations"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Verb"},"children":["Verb"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Path"},"children":["Path"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List, with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}," filter"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Detail (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["?includeNodes=true"]}," for nodes)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUT"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Update metadata / status"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Soft delete + cleanup of triggers"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}/graph"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Full graph"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}/nodes"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create node"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUT"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}/nodes/{nodeId}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Update node"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}/nodes/{nodeId}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Delete node + incident edges"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}/edges"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Add edge"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}/edges"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Remove edge"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}/analytics"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Run analytics"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}/logs"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List run logs (history)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}/logs/{logId}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["One run + per-node results"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"run-logs","__idx":12},"children":["Run logs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every time a workflow runs it records an execution. Read them to audit results,"," ","debug failures, or track credit usage."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["List"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}/logs"]}," — paginated, with optional"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["start_date"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["end_date"]}," filters. Each run (basic fields):"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Notes"},"children":["Notes"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["logId"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["successful"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the run completed without error."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["started_at"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ISO timestamp."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed_at"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ISO timestamp (null while running)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["duration"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Milliseconds."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["operations"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Number of node operations executed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ai_credits"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["AI credits consumed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Error message if the run failed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["insufficient_credits"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Run stopped because the account ran out of credits."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prevented_loop"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Run stopped because a loop was detected."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Detail"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/public/v1/workflows/{workflowId}/logs/{logId}"]}," — the run above plus"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["node_results: [{ node_id, alias, type, success, error, ai_credits, created_at }]"]},","," ","one entry per node that executed."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"cli","__idx":13},"children":["CLI"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"frontline workflows list --table\nfrontline workflows create --name \"Daily CRM Sync\"\nfrontline workflows nodes create --data '{\"nodeId\":\"trigger_1\",\"type\":\"TRIGGER\",\"position\":{\"positionX\":0,\"positionY\":0},\"data\":{\"type\":\"TRIGGER\",\"triggerType\":\"CONTACT_CREATED\"}}'\nfrontline workflows analytics --start-date 2026-01-01 --end-date 2026-12-31\nfrontline workflows logs --workflow-id 2 --table\nfrontline workflows logs --workflow-id 2 --status FAILED --start-date 2026-01-01\nfrontline workflows logs get 9001 --workflow-id 2 --pretty\nfrontline integrations list --table\nfrontline integrations whatsapp-templates --table\n","lang":"bash"},"children":[]}]},"headings":[{"value":"Workflows","id":"workflows","depth":1},{"value":"Identity","id":"identity","depth":2},{"value":"The graph","id":"the-graph","depth":2},{"value":"Node types","id":"node-types","depth":3},{"value":"Runtime variables","id":"runtime-variables","depth":3},{"value":"CREATE_RECORD_ACTIVITY node","id":"create_record_activity-node","depth":3},{"value":"ITERATION (Loop) node","id":"iteration-loop-node","depth":3},{"value":"BREAK node","id":"break-node","depth":3},{"value":"AUTOMATION_STATUS node","id":"automation_status-node","depth":3},{"value":"SEND_WHATSAPP_MESSAGE node","id":"send_whatsapp_message-node","depth":3},{"value":"Integrations (read-only)","id":"integrations-read-only","depth":2},{"value":"Operations","id":"operations","depth":2},{"value":"Run logs","id":"run-logs","depth":2},{"value":"CLI","id":"cli","depth":2}],"frontmatter":{"seo":{"title":"Workflows"}},"lastModified":"2026-06-30T16:41:59.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/concepts/workflows","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}