Skip to main content
Cursor is an AI-assisted editor. Point it at this documentation and it can scaffold a server that starts outbound calls, stores the API key safely, and handles webhooks. This is the right path when you want code you own — a Node, Python, or Go service — rather than a no-code workflow.

Before you start

  • API access enabled, with a key from Settings → Developer API.
  • An outbound agent and its agent ID.
  • A phone line UUID from Settings → Phone Numbers & Telephony.
  • This docs site open so you can @-mention pages or paste the Make a call request into the chat.

1. Keep secrets out of the repo

Create a .env (and add .env to .gitignore):
In Cursor Cloud Agents, put the same names in the run’s secrets instead of committing them.

2. Ask Cursor to build the client

Open Agent mode and paste a prompt like this (keep your real key out of the prompt — tell it to read .env):
A typical generated call looks like this:
Point Cursor at Make a call if the generated fields drift (the API expects to, agentId, enterprise, and from).

3. Handle webhooks in the same service

Ask Cursor to add POST /webhooks/trikon that:
  1. Returns 200 OK within 3 seconds.
  2. Reads event, callUuid, to, transcript, intent, and summary.
  3. Queues CRM updates instead of doing them in the request handler.
Then paste that URL into Settings → Developer API. Payload shapes are on Webhooks.

4. Check the work

1

Call yourself

Hit your local endpoint with your own number. The agent should ring and use {{customer_name}} if you passed name.
2

Match the call log

The JSON callUuid should appear in Call Logs in the app.
3

Confirm the webhook

After the call, your handler should receive call.completed (or call.no_answer / call.failed).
If Cursor invents extra headers or query parameters, delete them. Authentication is only Authorization: Bearer, and the call is a single JSON POST to /api/outbound-call.