connections.out, Variable { id, name, parentId, valueType }, sub-node parenting, and pointer placeholders such as "wf_child_support".
Pingmee trigger + keywords
Pingmee trigger + keywords
Reply bot: the customer messages first (Execution
pingmeeTrigger with eventType: "Messages Created" and a keyword gate). No Meta template — first WhatsApp node is messageType: "custom" with a BODY. Do not call GET /templates unless the user named a catalog template. For a bot that opens the thread, see Conversation opener.CanvasConversation opener (Meta template)
Conversation opener (Meta template)
The bot starts the thread (ExecutionA text HEADER with
workflowTrigger + POST /trigger). This is a starter, so Meta requires an approved template. Fetch GET /templates for the workflow’s associatedToBusinessId, copy one APPROVED object into templateInformation, set messageType: "template" and templateType: "whatsapp" (runtime keys off templateType). Bind {{n}} with bodyVariables / headerVariables. Reply bots (inbound pingmeeTrigger) use messageType: "custom" instead — Pingmee trigger + keywords.Document fields (set on create): associatedToBusinessId = phone-number id from GET /phone-numbers, platformType: "whatsapp".Canvas{{1}} uses headerVariables the same way. IMAGE / VIDEO / DOCUMENT headers are not available via API unless attachmentS3Id is already on the component. For triggerData bindings on the same shape, see Workflow Trigger + triggerData.WhatsApp template parameters + answers
WhatsApp template parameters + answers
bodyVariables copy the trigger catalog. Answers are siblings on the canvas (parentId) and subNodes at runtime. Outgoing handle is "in".Canvas (trimmed)Workflow Trigger + triggerData
Workflow Trigger + triggerData
Manual payload on a ExecutionThen POST /trigger:The same Expression works in an HTTP
workflowTrigger (same output shape on pingmeeTrigger / social triggers). POST { "triggerData": { "websiteLink": "https://example.com" } } then bind return $trig_1.triggerData.websiteLink; in a WhatsApp slot. The $… id is the trigger node id. See triggerData.CanvasbodyVariables slot. Save both graphs, activate, then trigger.If / Else
If / Else
Parent holds Canvas edges from those children use
conditions. Children titled true / false. Real booking bots use "Is Empty" on a trigger field (for example customer name) before an HTTP or Fireberry write.sourceHandle: "in".Switch
Switch
Product-line bots switch on a catalog field, then pointer into a region workflow. Conditions sit on each case child.
HTTP request
HTTP request
Reminder and booking flows POST JSON with Root canvas edge:
{{1}} bound to a trigger variable (often a campaign parameter expression).sourceHandle: "out".Fireberry
Fireberry
Inbound bots create-or-update a CRM row keyed by phone. Table and field names below are generic stand-ins.Other
action values seen: "Create", "Update Record".Task
Task
Region menus create a follow-up task, then pointer. Title uses
{{1}}.Wait
Wait
Used on long booking trees between a message and an
updateConversation.Update conversation and customer
Update conversation and customer
Follow-up and booking bots tag the thread, flip answer mode, and bind customer fields to the trigger catalog (not raw PII).
AI
AI
Reminder flows call
ai after HTTP / Fireberry. Summarize publishes a summary output for later templates.aiOption may also be "answerWithAI" (no summary catalog).Workflow pointer + workflowTrigger
Workflow pointer + workflowTrigger
Lead router: Pingmee trigger → menu answers → three pointers. Each child is a separate document that starts with Child executionParent canvas edges: trigger
workflowTrigger and is active.Parent execution (trimmed)out → menu; answer in → pointer. After the child finishes, parent resumes at upd_conv.Complex: parameters AND a pointer
Complex: parameters AND a pointer
Landing-style child: Matching canvas edges
workflowTrigger → WhatsApp with expression parameters from triggerData → answers → Fireberry → pointer to a shared closer. Also shows settings.sharedTimeout. This is the shape to copy when you need both bindings and a sub-workflow. For the payload-only pattern, see Workflow Trigger + triggerData.Document (trimmed)wf_child_support must already be active and start with workflowTrigger. Save both graphs, then activate, then trigger — see overview.