Skip to main content

Ask a Person Node

The Human Communicator node (also called Dispatcher) orchestrates conversations with humans across multiple channels. It manages complex communication flows where you need to collect information, provide responses, and handle multi-turn conversations.

When to Use

  • Multi-channel conversations - Communicate via email, Slack, web chat, SMS
  • Information gathering - Collect structured data through conversation
  • Support workflows - Route and respond to customer inquiries
  • Approval processes - Request and collect human approvals
  • Interactive workflows - Workflows that require back-and-forth with users
For simple single-message notifications, use Send Reply or App Action instead. Ask a Person is for complex, multi-turn interactions.

How It Works

The Human Communicator creates conversation flows with multiple branches:
├── Human Communicator
│   ├── [Event Handle] - Triggered when human responds
│   │   └── Process response, decide next step
│   ├── [Action Handle] - Send messages to human
│   │   └── Send Reply nodes
│   └── [Timeout Handle] - Triggered if no response
│       └── Handle timeout (reminder, escalation)

Event Handles

Event handles trigger when the human does something:
  • Sends a message
  • Provides requested information
  • Clicks a button or makes a selection

Action Handles

Action handles perform outbound communication:
  • Send initial message
  • Ask follow-up questions
  • Confirm collected information

Example: Customer Information Collector

Collect customer details through conversation:
1

Set up the communicator

Add a Human Communicator node with:
  • Channels: email, slack
  • Skillset: “Customer Intake”
2

Define the conversation flow

Create the skillset to collect:
  • Customer name
  • Company
  • Project requirements
  • Budget range
  • Timeline
3

Handle responses

Connect event handles to process each response and ask the next question.
4

Use collected data

When complete, {{dispatcher_1.collectedData}} contains all the information:
{
  "customerName": "Jane Smith",
  "company": "Acme Corp",
  "requirements": "...",
  "budget": "50k-100k",
  "timeline": "Q2 2024"
}

Example: Support Ticket Handler

Route and respond to support requests:
Workflow: Support Handler
├── Event from App (new email to support@)
├── LLM (classify ticket type)
├── Human Communicator (support conversation)
│   ├── [Event: customer replies]
│   │   ├── LLM (analyze response, determine if resolved)
│   │   ├── Condition (resolved?)
│   │   │   ├── Met: Send Reply (closing message) → End
│   │   │   └── Unmet: LLM (generate follow-up) → Send Reply
│   ├── [Action: initial response]
│   │   └── Send Reply (acknowledgment + initial help)
│   └── [Timeout: no response 24h]
│       └── Send Reply (follow-up check-in)
└── External API (log to CRM when complete)

Channels Configuration

Email Channel

{
  "type": "email",
  "connection": "gmail_support",
  "replyTo": "[email protected]",
  "signature": "Best regards,\nSupport Team"
}

Slack Channel

{
  "type": "slack",
  "connection": "slack_workspace",
  "defaultChannel": "#support",
  "allowDM": true
}

Web Widget Channel

{
  "type": "web_widget",
  "widgetId": "widget_abc123",
  "position": "bottom-right"
}

Skillsets

Skillsets define AI-powered conversation capabilities. Each skillset is a conversational agent that collects structured data through natural dialogue.
For complete skillset documentation, see the Skillset Engine guide.

Basic skillset example

{
  "name": "Lead Qualification",
  "description": "Qualify potential customers",
  "fields": [
    {"id": "company_size", "name": "Company Size", "type": "number"},
    {"id": "budget", "name": "Budget Range", "type": "selection", "options": ["<10k", "10k-50k", "50k+"]},
    {"id": "timeline", "name": "Timeline", "type": "text"}
  ],
  "greeting": "Hi! I'd love to learn more about your needs.",
  "confirmationMessage": "Thanks! Let me confirm: {{summary}}"
}

Skillset capabilities

Skillsets powered by the Skillset Engine support:
  • Natural conversation — AI guides users through questions conversationally
  • 9 conversation tools — Accept, reject, skip, update answers, search knowledge, escalate
  • Knowledge base integration — AI can search your docs to answer questions
  • Automatic escalation — Transfers to humans when needed
  • Actions and events — Trigger workflows based on conversation progress
  • Guardrails — Content safety and behavior boundaries

Conversation States

The Human Communicator maintains conversation state:
StateMeaning
greetingInitial contact, sending first message
collectingActively gathering information
confirmingAsking human to confirm collected data
completedConversation finished successfully
timeoutHuman didn’t respond in time
escalatedTransferred to human agent
Access state: {{dispatcher_1.status}}

Timeout Handling

Configure what happens when humans don’t respond:
├── Human Communicator
│   ├── [Event Handle] - Normal flow
│   └── [Timeout Handle: 24h]
│       ├── Condition (attempt < 3)
│       │   ├── Met: Send Reply (reminder) → Reset timeout
│       │   └── Unmet: External API (escalate to team)

Multi-Channel Conversations

Humans can switch channels mid-conversation:
  1. Start via web widget
  2. Continue via email
  3. Complete via Slack
The Human Communicator tracks the conversation across channels.
Include a conversation reference number in messages so humans can reference it when switching channels.

Tips

Keep conversations focused on one topic. If users bring up unrelated issues, acknowledge them and offer to create separate conversations.
Use confirmation messages before ending: “I have your company as Acme Corp and budget as $50k. Is that correct?”
Long timeouts (days/weeks) can lead to many open conversations. Consider implementing conversation cleanup for abandoned conversations.

Settings

name
string
default:"Human Communicator"
Display name shown on the canvas.
key
string
default:"dispatcher_1"
Unique identifier for referencing outputs.
channels
array
required
Communication channels to use:
  • email - Email via connected Gmail/Outlook
  • slack - Slack direct messages or channels
  • web_widget - Embedded chat widget
  • sms - Text messages (requires SMS provider)
skillsets
array
Define conversation skillsets - different conversation flows the communicator can handle.
defaultSkillset
string
The skillset to use when none is specified.
timeout
number
default:"86400000"
How long to wait for human response (in milliseconds). Default is 24 hours.

Outputs

response
object
The human’s response:
  • text - The response message
  • timestamp - When they responded
  • channel - Which channel they used
collectedData
object
Structured data collected during the conversation (from skillsets).
conversationId
string
Unique identifier for this conversation.
status
string
Conversation status: active, completed, timeout, escalated.

Learn More