What is an integration?
An integration is a third-party API key stored securely inside OneInbox.- OneInbox encrypts the key at rest
- The raw key is never returned after creation
- You reference integrations by
idin other API calls
When to use
Integrations are entirely optional. OneInbox provides defaults for everything out of the box — LLM, STT, TTS, and phone numbers — so you can build and test without any integration at all. Add one only when you want to bring your own:- LLM — openai, shisa, and custom (via
custom_websocket_url) are available out of the box, no key needed. anthropic and groq require you to bring your own API key and create an integration first. - STT — all providers (deepgram, whisper, assembly_ai, azure) are available out of the box. Add an integration only if you want usage billed to your own provider account.
- TTS — all providers (cartesia, deepgram, elevenlabs, openai, shisa, minimax) are available out of the box. Add an integration only if you want usage billed to your own provider account.
- Phone numbers — use a number from your own Twilio or Telnyx account instead of the OneInbox default
- Email or calendar tools —
send_emailandschedule_calendar_eventneed acredential_idpointing at your Resend/SendGrid or Cal.com account
How to use
metadata object with provider-specific details:
Resend setup
To use thesend_email tool with Resend, you need two things: a Resend API key and a verified sending domain.
1 — Get your Resend API key
- Go to resend.com and log in
- Open API Keys in the left sidebar
- Click Create API Key — give it a name like “OneInbox”
- Copy the key (starts with
re_)
2 — Verify your sending domain
Resend blocks email from domains you haven’t verified — sends fail with HTTP 403.- In Resend, go to Domains → Add Domain
- Enter the domain you want to send from (e.g.
yourdomain.com) - Resend shows you DNS records to add — typically three records:
| Type | Purpose |
|---|---|
TXT | SPF — tells receiving servers that Resend is allowed to send on your behalf |
CNAME | DKIM — cryptographically signs outgoing messages to prove they’re genuine |
CNAME | DMARC alignment (optional but recommended) |
- Add these records in your DNS provider (GoDaddy, Cloudflare, Route 53, etc.)
- Click Verify in Resend — propagation usually takes a few minutes
You can only send from the exact domain (or a subdomain of it) that you verified. For example, verifying
yourdomain.com lets you send from hello@yourdomain.com or noreply@yourdomain.com. It does not cover mail.yourdomain.com unless you verify that subdomain separately.3 — Create the integration
Pass your verified sending address asmetadata.from_email. This is the address that appears in the “From” field of every email the agent sends:
id — use it as credential_id when creating a send_email tool.
Cal.com setup
To use theschedule_calendar_event tool, you need a Cal.com API key and the ID of the event type you want the agent to book against.
What is an event type?
An event type in Cal.com is a bookable meeting — it defines the duration, availability, booking form, and confirmation settings. Examples:| Event type | Duration | Use case |
|---|---|---|
| Product Demo | 30 min | Agent books a demo for interested leads |
| Discovery Call | 20 min | First-touch qualification call |
| Onboarding | 60 min | New customer setup session |
1 — Get your Cal.com API key
- Log in to cal.com
- Go to Settings → Developer → API Keys
- Click Add — give it a name and copy the key
2 — Find your event type ID
From the URL: In your Cal.com dashboard, open Event Types and click Edit on the event you want. The URL contains the ID:id fields. Pick the one you want the agent to book.
3 — Configure availability
The agent can only book slots that are available in Cal.com. Before going live:- Set your working hours on the event type (e.g. Mon–Fri, 9am–5pm)
- Choose a buffer time between meetings if needed
- Make sure the event type is set to active (not draft)
The agent must collect the caller’s name and email during the conversation — both are required by Cal.com to complete a booking. Make sure your agent’s system prompt asks for these before attempting to schedule.
4 — Create the integration
id — use it as credential_id when creating a schedule_calendar_event tool. The event_type_id is set on the tool itself, not the integration.
How integrations connect
credential_id on number search/register.
Manage integrations
List all integrations
Get an integration
api_key is never returned — only the masked_key is shown.
Update an integration
Update the name, API key, metadata, or provider of an existing integration.Delete an integration
Permanently removes the stored credential. Any models or tools using thiscredential_id will lose access to the provider until you attach a new integration.
Next steps
- Phone numbers — telephony integration
- Voices — custom voice import
- Create integration — API reference