Skip to main content
This example is a small CRM you host. Each contact is a card. Columns are pipeline stages. A Like column (or a Like control on every row) marks the people your team wants to follow up. Trikon Voice is the calling layer — you do not rebuild telephony. Trikon already has an in-app Leads screen. This page is for when you want your own UI (or to embed voice inside an existing CRM).

What you will ship

  • A board: columns such as New, Calling, Interested, Follow-up, Not interested, Booked.
  • A Like column (heart or star). Liked rows pin to the top of a column or to a Favourites view.
  • Call on a card → POST /api/outbound-call or POST /api/developer/leads/{id}/call.
  • Webhooks move the card when the AI reports intent (interested, follow_up, not_interested, appointment_scheduled, …).

Data model (your database)

Keep Trikon IDs so webhooks can find the row.
column_key is your pipeline, not Trikon’s call status. Map AI intent → column in the webhook handler. liked is the Like column: a boolean you store yourself. The Voice API does not persist likes; that is application state.

1. Create the contact in Trikon (optional but useful)

When someone is added in your CRM, mirror them into Trikon Leads so Call Logs stay aligned:
Save lead.id from the 201 body as trikon_lead_id. You can skip this and only use outbound-call if you do not need the Trikon Leads UI.

2. Call from a card

Option A — call by number (no lead row required):
Put crm_contact_id in metadata if you want your webhook to key off a field you control. Store returned callUuid on the row and set column_key to calling. Option B — call an existing Trikon lead:
Request details: Make a call.

3. Like column

This is entirely in your app:
UI ideas that match a “column feature”:
  • A dedicated Liked column on the board that lists every liked = true contact, still showing their pipeline column as a badge.
  • A Like control as the first column of a table view (star / heart), sortable so liked contacts float up.
  • Filter chips: All | Liked | Unliked.
Liked does not change how you call. Teams typically Call liked contacts first from a “Favourites” queue.

4. Move columns from webhooks

Point Settings → Developer API at https://your-crm.example/webhooks/trikon. Acknowledge with 200 in under 3 seconds, then update the row asynchronously.
Full payload: Webhooks. Prefer analysis.completed when you need intent and summary.
One workspace has one webhook URL. If Zapier or n8n already occupies it, put a tiny fan-out service in front that POSTs to both your CRM and the automation tool.

5. Suggested UI

Agent script for this CRM

Give the outbound agent instructions so intent is stable enough to map to columns, for example:

Checklist

1

Board + Like

Columns and liked work with fake data, no API yet.
2

Create + call

New contact hits /api/developer/leads and Call hits outbound-call. You hear the agent.
3

Webhook

After a real call, the card moves and last_summary appears.
4

Liked queue

Filter to liked contacts and call from that list.