Callr Actions
Build voice & SMS flows in YAML — ship without waiting on telecom
Callr Actions is a declarative framework — inspired by GitHub Actions — for designing voice and SMS call flows. Compose complex logic from simple building blocks and turn a phone number into a working flow in minutes, not weeks.
One framework, two teams
Made for marketing and engineering
Marketing reads and tweaks scenarios in the Callr Console; engineering manages them through the REST API. Same file, no hand-offs.
For marketing & ops
Launch campaigns in minutes
Spin up a call-tracking number, IVR, or SMS flow as one readable scenario and go live the same day.
Stop waiting on developers
Read and tweak a scenario directly in the Callr Console — no release cycle for a new prompt, route, or message.
Track every call and attribute it
Push call events straight to Google Analytics or Mixpanel to tie phone conversations back to your campaigns.
Capture insights from conversations
Record, transcribe, and extract structured data with AI so every interaction feeds your pipeline.
For developers
Declarative YAML, not glue code
Describe the whole flow as branches and actions in one file — predictable, reviewable, easy to reason about.
Serverless and validated
Scenarios run on Callr with a JSON schema for autocomplete, inline docs, and live testing. Nothing to host.
Version-controllable
Author in your own editor and manage scenarios through the REST API, so flows live alongside your code.
Call out with fetch & webhooks
The fetch action makes HTTP requests at runtime, so flows hit your REST API and consume webhooks.
Sandboxed JS & bring-your-own AI
Drop into the javascript action for custom logic, use ${{ }} expressions inline, and plug in OpenAI or an AI agent.
Anatomy of a scenario
Six concepts, the whole platform
A scenario is a single YAML file. Learn these and you can build anything.
Branches
Named sections of a flow — including entry points — that a call enters and moves between.
Actions
The building blocks: say, gather, dial, record, sms, fetch — each a versioned step like say@v2.
Expressions
Runtime ${{ }} expressions, evaluated in JavaScript, compute dynamic values inside any parameter.
Conditions
The if statement runs an action only when a condition is true, so flows react to input or data.
Variables
User-defined values prefixed with $ store and carry data across the whole scenario.
Defaults
Scenario- and branch-level settings — language, voice, auto-answer — applied automatically.
Flows start from three entry points
- inbound-call
- inbound-sms
- api-initiated
See it in code
Real scenarios, ready to adapt
Each is a complete, valid Callr Actions scenario. Copy it, change the numbers, ship it.
Smart inbound routing
Greet the caller, capture intent by voice, and dial the right team — in a handful of lines.
Insights from every call
On hangup, summarise the transcript with AI into structured data and push it straight to your CRM.
Instant lead capture
An inbound text upserts the lead, fires an auto-reply, and logs an attribution event for marketing.
The toolbox
An action for everything
Voice, messaging, AI, recording, and integrations — each a versioned, documented building block.
Voice & call control
answer@v1Answer an inbound callsay@v2Text-to-speech, 100+ languagesgather@v2Collect keypad (DTMF) inputrecognize@v2Speech-to-textdial@v1Connect or place a callamd@v2Detect answering machines
Messaging
sms@v1Send an SMSemail@v1Send an email
AI
openai@v2Call the OpenAI APIfetch@v2Reach Claude, Mistral & self-hosted LLMsvoicebot@v1Run an AI voice agent
Recording
startRecording@v1Record the callrecord@v1Capture a voice message
Data & integrations
fetch@v2Call any REST API or webhookjavascript@v1Run sandboxed JavaScriptgoogleAnalytics@v1Send offline calls to GAmixpanel@v1Push events to Mixpanelmemcache@v1Key/value store
Plus answering-machine detection, conferencing, DTMF, and more — see the full reference. Read the docs →
Turn a phone number into a flow today
Start free, or read the reference to see every action and example.