dograh/docs/voice-agent/start-call.mdx
Rushil 96cde1b767
docs: flesh out all 5 voice agent node pages (#556)
* docs: flesh out stub node pages for Global, Start Call, Agent, End Call, QA

Each page was previously a stub (1 sentence or a single <Note>). Now contains:
- Plain-English explanation of what the node does and when it runs
- Fields/configuration reference
- Common mistakes section
- Next Steps with CardGroup links

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: fix heading structure, Warning placement, variable formatting in node pages

- qa.mdx: promote Viewing QA Results from h3 to h2 (was incorrectly nested under Where it sits on the canvas)
- end-call.mdx: move Warning inside Common Mistakes, directly after the bullet it relates to
- start-call/agent/end-call/qa.mdx: wrap bare gathered_context and initial_context in backticks in Card descriptions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: correct node page errors found by cross-checking against live API + DTO

start-call:
- Fix Node Name description (canvas label, not agent spoken name)
- Split Greeting Text and Prompt into separate documented fields (were conflated)
- Add Delayed Start field (real config option, was missing entirely)
- Fix Common Mistakes (remove wrong Agent Name claim)
- Add Pre-recorded Audio note with link

end-call:
- Remove incorrect <Note> claiming one End Call per workflow
- DTO has no max_instances constraint; llm_hint explicitly says multiple are supported
- Fix Common Mistakes to reflect correct guidance (multiple allowed)

agent:
- Add Extracting variables section documenting extraction_enabled, extraction_prompt,
  extraction_variables fields with a concrete example

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: fix field names and QA model against live platform schemas

- qa.mdx: replace fictional criteria-list concept with accurate
  qa_system_prompt field; document default output format (tags, score,
  sentiment, summary); add sampling/duration/voicemail filter settings
- global.mdx: correct prompt-merge order (global prepended, not appended)
- start-call.mdx: update stale "Greeting Prompt" reference in common
  mistakes to match renamed field "Greeting Text"

Verified against live node schemas via Dograh MCP get_node_type.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: fix em dash violations and appended/prepended contradiction

- global.mdx: "silently appended" contradicted "global content first";
  changed to "prepended" for internal consistency and schema accuracy
- qa.mdx: remove two em dashes (hard no per style rules)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: correct node docs against live workflow SDK evidence

- start-call: replace invented fixed edge labels with accurate explanation
  that edge labels and conditions are user-defined; add real examples
- end-call: rename "Final Message" to "Prompt" to match SDK field name
  used in all real workflows; update all references
- global: add Start Call to Add Global Prompt toggle coverage
  (startCall has add_global_prompt: true by default per schema)
- qa: replace informal tag descriptions with actual default tag names
  from the qa_system_prompt schema

All changes verified against live Dograh MCP node schemas and
real workflow SDK code (workflow IDs 7764, 8291).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: flesh out all 5 voice agent node pages with accurate UI fields

Complete rewrite of stub docs for global, start-call, agent, end-call,
and qa nodes. Field names, toggle labels, and section headings now match
the actual Dograh UI exactly. Covers all fields visible in each node
edit panel including Allow Interruption, Add Global Prompt, Delayed Start,
Enable Variable Extraction, Pre-Call Data Fetch, and QA settings table.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: remove Allow Interruption from End Call node

End Call does not expose an Allow Interruption toggle in the UI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: address cubic and greptile review comments on node pages

- agent.mdx, end-call.mdx: remove/correct gathered_context claims -
  it is not available in any node's Prompt, only in Webhook payloads
  and the run record (confirmed against context-and-variables.mdx)
- global.mdx: fix appended -> prepended in frontmatter description
  and Common Mistakes (contradicted How It Works section)
- introduction.mdx: update End Call node-type table - multiple End
  Call nodes are supported, not just one
- agent.mdx, end-call.mdx, qa.mdx, start-call.mdx: tag bare code
  fences as text for Mintlify syntax highlighting
- global.mdx, start-call.mdx, agent.mdx, end-call.mdx, qa.mdx:
  convert absolute internal links to relative paths per style guide

* docs: embed video tutorials on all 5 node pages, fix cubic grammar comment

- Add Video Tutorial section (iframe embed) to global, start-call,
  agent, end-call, and qa node pages, matching the pattern already
  used in webhook.mdx
- global.mdx: fix "Global Node contain" -> "Global Node contains" in
  frontmatter description, per cubic review on 09c5ff31

* docs: fix appended/prepended in introduction.mdx node table

Global node's node-type summary still said the prompt is "appended"
after Add Global Prompt is enabled, contradicting the corrected
"prepended" behavior documented everywhere else. Caught by greptile
P1 review on commit b7fe2d0d.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-23 12:27:17 +05:30

143 lines
5.3 KiB
Text

---
title: "Start Call"
description: "You can use Start Call node to Start the call and configure how Agent greets the user when the conversation starts."
---
## Video Tutorial
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/Bpnu7Oz-YPI"
title="Start Call Node Tutorial"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerPolicy="strict-origin-when-cross-origin"
allowFullScreen
></iframe>
<Note>
You should have only one Start Call node per Voice Agent.
</Note>
Start Call is the entry point for every conversation. It fires the moment a call connects and controls the first thing your agent says. Every workflow must have exactly one.
## When it runs
Start Call executes before any Agent Node. No other node can precede it in the call flow.
After Start Call completes, the conversation moves to the next node - typically your first Agent Node. If the caller hangs up immediately or reaches a wrong-number condition, Start Call can route directly to End Call instead.
## Fields
**Name**
Short identifier shown in the canvas and call logs. Has no runtime effect on what the agent says.
**Greeting Type**
Whether the greeting is spoken via TTS from text or played from a pre-recorded audio file. Defaults to "Text (TTS)".
**Greeting Text**
Optional fixed line spoken via TTS the moment the call connects, before the AI's conversational turn begins. Supports `{{template_variables}}`. Leave empty to skip the greeting and let the Prompt handle the opening.
For example:
```text
Hi {{initial_context.debtor_name}}, this is Alex from Apex Recovery Solutions.
```
<Note>
See [Pre-recorded Audio](./pre-recorded-audio) to use a recording file instead of TTS text.
</Note>
**Prompt** (required)
System instructions for the AI's opening conversational turn. Runs after Greeting Text (if set). Supports `{{initial_context.field_name}}` and variables from Pre-Call Data Fetch.
For example:
```text
After greeting the caller, confirm you are speaking with
{{initial_context.debtor_name}}. If they confirm, move to Debt Disclosure.
If they say wrong number, move to End Call.
```
<Warning>
If a variable referenced in Greeting Text or Prompt is missing from the API request payload, the agent speaks the raw placeholder out loud - for example, "Hi `{{initial_context.debtor_name}}`" - instead of the caller's name. Test with a complete payload before publishing.
</Warning>
**Allow Interruption**
When on, the caller can interrupt the agent mid-utterance. Off by default on Start Call.
**Add Global Prompt**
When on and a Global Node exists, the Global Prompt is prepended to this node's Prompt at runtime. On by default.
**Delayed Start**
When on, the agent waits before speaking after the call connects. Useful for outbound calls where the called party needs a moment to settle. Duration can be set between 0.1 and 10 seconds.
**Enable Variable Extraction**
When on, an LLM extraction pass runs after this node's turn to capture structured data from the conversation into `gathered_context`.
**Tools**
Functions the agent can call during the opening turn. Add via the "HTTP & Tools" tab (HTTP API and built-in tools) or the "MCP" tab (MCP server tools).
**Knowledge Base Documents**
Documents the agent can reference during this step. Attach via "Manage Documents."
**Pre-Call Data Fetch**
When on, Dograh makes a POST request to an external API before the call starts and merges the JSON response into the call context as template variables.
## Outgoing edges
Start Call can have multiple outgoing edges, each with a user-defined label and a condition written in plain language. The LLM reads the conversation and picks the edge whose condition best matches.
Each edge needs two things:
- **Label:** a short name shown on the canvas (you define this)
- **Condition:** the instruction that tells the LLM when to take this edge
A typical Start Call has two edges:
```text
Label: "caller confirmed"
Condition: "The caller confirmed they are the right person and are ready to continue."
Label: "wrong number"
Condition: "The caller says this is the wrong number, asks not to be called, or refuses to confirm their identity."
```
You can add more edges if the opening turn needs to branch further.
## Common mistakes
**Leaving Greeting Text empty with no Prompt.** If both Greeting Text and Prompt are empty, the agent says nothing at the start of the call. The caller hears silence.
**Confusing Node Name with the agent's spoken name.** Node Name is a canvas label for your own reference. The name the agent introduces itself as comes from the Greeting Text or Prompt content, or the persona you define in the [Global Node](./global).
**Adding a second Start Call node.** Each workflow has one entry point. A second Start Call node will throw an error.
## Next Steps
<CardGroup cols={2}>
<Card title="Agent Node" href="./agent">
Build the core conversation logic that follows the greeting.
</Card>
<Card title="Global Node" href="./global">
Set persona and tone rules that apply across all nodes.
</Card>
<Card title="Context and Variables" href="../core-concepts/context-and-variables">
Learn how `initial_context` variables flow through a call.
</Card>
<Card title="End Call Node" href="./end-call">
Configure the agent's final message before the call drops.
</Card>
</CardGroup>