FAQ
Common questions about shipping, operating, and paying for Rymi voice agents. If you don't see your question here, the full docs or the studio chat can help.
Top questions
How do I publish my agent so it can take real calls?
Open the agent in Studio, run the publish validation, then attach a phone number under Numbers. Calls only route to published agents — drafts can be tested in the browser but won't answer real phone calls. See How Studio works.
Why are my calls not connecting?
Check your telephony connection under Settings → BYO Providers. Verify the carrier is connected and that the number is attached to a published agent. Confirm the carrier's answer URL is set to gateway.rymi.live/inbound/<provider>. See the full Telephony guide.
How is billing calculated and where do I add credits?
Calls are billed per minute against your prepaid credit balance. Top up from Settings → Billing & usage or via the Credits chip in the sidebar. Failed calls (busy, no-answer) don't bill — only calls that connect and exchange audio.
My agent sounds robotic — how do I improve voice quality?
Try a different voice in the Voice section of Studio. Premium voices (ElevenLabs, Cartesia) usually sound more natural for production traffic than the default OpenAI TTS. See the Model picker guide for full tradeoffs.
How do I set up webhooks for call events?
Add a webhook endpoint in Settings → Webhooks. Rymi signs every payload — verify the Rymi-Signature header against an HMAC-SHA256 of the raw body using your webhook secret. See Webhooks Verification for code examples.
Can I bring my own LLM or voice provider keys?
Yes. Add OpenAI, Anthropic, ElevenLabs, Cartesia, Groq, Cerebras, and 20+ other provider keys in Settings → BYO Providers and Rymi will route calls through your accounts. Secret keys are encrypted at rest and never exposed to the browser. See Voice Providers.
Getting started
How do I create my first agent?
Open the Studio, describe what you want the agent to do, and the designer will assemble a default configuration. See the Quickstart for a five-minute walkthrough.
Do I need a phone number to test?
No. You can test-call any agent from the studio's built-in test panel without attaching a number. Numbers are only required for inbound production calls.
Which languages are supported?
100+ languages across Gemini, Deepgram, and ElevenLabs. See Languages for the current list and model coverage per language.
Pricing & billing
How is usage billed?
Per minute of call audio, billed to the tenant. The studio shows your current plan's rate; invoices itemize calls by agent. There is no separate fee for inbound vs outbound.
Do failed calls count?
Only calls that connect and exchange audio bill. Busy signals, no-answer, and provider-side failures do not.
Can I cap spend per agent?
Yes — set maxCallDuration (seconds per call) and use webhook-driven spend tracking. A global monthly cap lives on the tenant billing settings page.
Calls & telephony
How long does it take to connect a call?
Typical first-token latency is 600-900 ms in specialist tier and under 400 ms in executive tier. Outbound dispatch-to-ring is usually under 2 s.
What happens if the caller hangs up mid-sentence?
The agent finalizes any in-flight extraction, writes the transcript, and emits a call.completed webhook with the truncated duration. No audio is lost.
Can multiple callers share one number?
Yes. Numbers fan out to their attached agent per call — concurrency is limited only by your tenant plan. Use Queue & Fanout for high-volume outbound.
How do I route by caller ID?
Attach a phone number to a router agent whose playbook branches on caller.number metadata. See Custom Personas for routing patterns.
Webhooks
What happens if my webhook endpoint fails?
Rymi retries with exponential backoff: 1s, 5s, 30s, 5min, 30min. After 5 failures the event is dead-lettered and surfaces in the dashboard. You can replay dead-lettered events up to 7 days later.
How do I verify a webhook is really from Rymi?
Compare the Rymi-Signature header against an HMAC-SHA256 of the raw request body using your webhook secret. See the verified code examples in Webhooks.
Which events fire for a single call?
call.started → optional call.transferred / call.extraction → call.completed (or call.failed). Order is guaranteed per call ID; retries may duplicate — treat handlers as idempotent keyed on event.id.
Limits & quotas
What's the per-tenant call concurrency?
Operator: 10 concurrent. Specialist: 50. Executive: 250. Higher limits available on request.
How long can a single call last?
Default cap is 30 minutes (maxCallDuration: 1800). Hard ceiling is 2 hours.
How much data is retained?
Transcripts, extraction fields, and call metadata: 90 days. Audio recordings: 30 days unless you extend via the compliance settings. Deleted agents' data is purged 7 days after deletion.
Troubleshooting
My agent isn't picking up calls
Check: (1) the number is attached to the agent, (2) the agent is published (not draft), (3) your tenant's balance is positive. The dashboard status page shows the number's current binding.
The voice sounds different from what I picked
If you changed the billing tier or TTS provider, voice selection may have been reset to a tier-compatible default. Re-open the Voice section in the studio to confirm.
I'm seeing 401s from the REST API
Verify the Authorization: Bearer $RYMI_API_KEY header. Secret keys start with rk_live_ (production) or rk_test_ (sandbox). Rotating a key revokes the old one immediately.
Extraction fields are empty
Extraction only runs when postCallExtractionEnabled is true AND the agent reaches a turn matching the extraction prompt. Short calls that end before extraction triggers won't populate those fields.

