Build Threll into the systems you already run
One API call starts a conversation. Webhooks let your systems join in while it happens. And with MCP, your AI assistant can do the work for you. Here are the essentials – the documentation has the rest.
Fits in where you already work
You don't need to build anything new around Threll. Your workflow says when to call, and the outcome lands where it belongs.
- 1
One API key
Create a key under Settings → Developer and send it in the x-api-key header. That's all authentication takes.
- 2
One request starts the call
Say who to call, which agent calls and what the goal is. The call is queued right away, or scheduled for a set time.
- 3
Events straight to your endpoint
Status, transcript and the final signal stream to a webhook you own while the call is in progress.
- 4
Results back in your system
Fetch the analysis, next action, transcript and recording over REST once post-processing is done.
curl -X POST https://api.threll.io/v1/accounts/$ACCOUNT_ID/phone-calls \
-H "x-api-key: $THRELL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workerId": "2b7d9a4c-6e3f-48a1-9c5d-8e0b4f2a1c8d",
"phoneNumber": "+4799999999",
"context": "Qualify this demo request. Goal: book a meeting.",
"customer": {
"type": "lead",
"firstName": "Kari",
"externalId": "crm-8841"
}
}'What a call looks like from the outside
- Sync
call.worker_requestBefore the agent answers: give it fresh data about the caller.
- Async
call.status_updateThe call is ringing, in progress or finished.
- Async
call.transcriptEach turn is sent as soon as it's been spoken.
- Sync
call.tool_callThe agent needs something from your system. The call waits for your answer.
- Async
call.endedThe final event. Now you can fetch the results.
Connect your business systems
CRM, patient records, booking or ERP: the agent reads and writes data in your system while it talks to the customer. You decide what it can reach.
- Before the call
Give the agent context
Look the caller up in your CRM and send along their history, open cases or past appointments. The agent then answers as if it knows the customer.
call.worker_requestSync - During the call
Let the agent do the work
Check free slots, look up an order or log a case: the agent calls the tools you define, and you answer from your system.
call.tool_callSync - After the call
Sync the outcome
Update the customer record, create missing contacts and route the next action – like "book meeting" or "escalate to a human" – to your ticketing system.
call.endedAsync
app.post('/threll/webhooks', async (req, res) => {
const { type, data } = req.body;
switch (type) {
case 'call.worker_request': {
const customer = await crm.findByPhone(data.customer.number);
return res.json({ context: customer?.summary ?? 'New caller' });
}
case 'call.tool_call': {
const account = await erp.findAccount(data.arguments.accountNumber);
return res.json({ result: account ?? { error: 'not found' } });
}
case 'call.ended':
queue.push({ syncCall: data.callId });
return res.sendStatus(200);
default:
return res.sendStatus(200);
}
});Safe to build on
- Every webhook is signed with HMAC-SHA256 in X-Threll-Signature, so you know it came from Threll.
- X-Threll-Event-Id makes it easy to ignore events that are delivered again.
- Sync events wait for your reply, so keep lookups under a second – the customer is on the line.
Ready-made integrations
- Cal.com
- EasyPractice
- Magento
- Intercom
- Crisp
- GoHighLevel
- Gastroplanner
- Shipmondo
- Vipps
Using something else? Connect it yourself with webhooks and your own tools – no need to wait for us.
Use Threll from your AI assistant
Threll has an MCP server, so Claude and other MCP clients can run your agents, schedule calls and search call history – with exactly the access the user approves.
https://mcp.threll.ioSet up in a couple of minutes
- 1
Add a custom connector
Paste the server address into your client. The rest of the configuration is discovered automatically.
- 2
Sign in and approve access
Sign-in uses OAuth 2.1. There are no API keys to store, and access can be revoked at any time.
- 3
The tools are ready
The assistant only gets the tools the user granted – account administration, for example, or a specific integration.
A human confirms
- Calls are prepared first and only placed once someone confirms.
- Up to 100 calls can be prepared and confirmed together.
- Scheduled calls can be cancelled before they go out.
Have Harald call these five leads tomorrow at nine.
Five calls from Harald are ready for tomorrow at 09:00. Shall I place them?
{
"mcpServers": {
"threll": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.threll.io/"]
}
}
}Everything you need to go further
Guides, references and examples live at developers.threll.ai.
- Getting startedAPI key, first request and the core concepts. (opens in a new window)
- Working with the REST APIStart calls, handle errors and fetch results. (opens in a new window)
- WebhooksSync and async events, signing and retries. (opens in a new window)
- End-to-end outboundFrom API call to finished CRM entry. (opens in a new window)
- End-to-end inboundRecognise the caller and route the next action. (opens in a new window)
- Telephony and phone numbersBring your own numbers over SIP or Twilio. (opens in a new window)
- Scheduled callsCall at a set time, and cancel when needed. (opens in a new window)
- Connect AI agents (MCP)OAuth, scopes and client setup. (opens in a new window)
- REST API referenceEvery endpoint, field and response. (opens in a new window)
- Webhooks referenceEvery event and what it contains. (opens in a new window)
- MCP referenceEvery tool and what it does. (opens in a new window)
- Limits and errorsRate limits, error codes and how to handle them. (opens in a new window)
Need help with your integration?
Book a meeting and we'll walk through the setup together – or ask a quick question in the chat.
Questions from developers
Can't find the answer here? Ask us in the chat.
You create API keys in the platform under Settings → Developer. The key goes in the x-api-key header on every request.
No. Add the MCP server as a connector in your AI assistant and sign in. You approve the access yourself and can revoke it whenever you like.
Every request carries an X-Threll-Signature header: an HMAC-SHA256 of the raw body, signed with your subscription's secret. Verify it before you parse the body.
Define your own tools and answer them from your webhook endpoint. The agent can then read from and write to any system you have an API for. If you'd like a hand, book a meeting with us.