Skip to main content
9th July, 2026

Multilingual static messages for graph agents

Static nodes in a graph agent can now hold a per-language message. Instead of a single string, static_message accepts a { "language_code": "text" } map, and the node speaks the variant that matches the caller’s active language.Highlights:
  • One pre-cached clip per language, each rendered with that language’s voice, so playback stays instant with zero LLM or TTS cost at call time
  • Automatically follows language auto-switch, so a caller who moves to Hindi or Tamil hears the matching-language clip on the next static node
  • Fully backward compatible: a plain-string static_message behaves exactly as before
Learn more in Static nodes.
7th July, 2026

Filter Webhooks by Call Status

You can now choose which call statuses trigger your webhook, instead of receiving a POST for every status change. This cuts noise for integrations that only care about specific outcomes (for example, only firing on completed).To set it up:
  • Open your agent and go to the Analytics tab.
  • Enter your Webhook URL under Webhook Configuration.
  • Use Trigger on statuses to select the statuses you want webhooks for. By default, all statuses are sent.
Learn more in the Using Webhooks guide and the Analytics Tab documentation.
2nd July, 2026

Router nodes for graph agents

Graph agents now support router nodes: silent dispatch nodes that pick the next node and hand off without ever speaking. Use them to branch on call data or caller intent, at the start of a flow or mid-flow, without adding a spoken turn.A router node evaluates its edges in order (deterministic expression edges first, then intent-based edges, then a required catch-all) and immediately transitions to the chosen node.Learn more in Router nodes.