Skip to main content
PUT
/
v1
/
core
/
recordings
/
{id}
/
link
Create or replace the CRM link on a recording
curl --request PUT \
  --url https://api.siro.ai/v1/core/recordings/{id}/link \
  --header 'Content-Type: application/json' \
  --header 'x-siro-auth-token: <api-key>' \
  --data '
{
  "id": "<string>",
  "externalId": "<string>",
  "integrationConnectionId": "<string>"
}
'
{
  "data": {
    "id": "<string>",
    "externalId": "<string>",
    "name": "<string>",
    "lastActivityAt": "<string>"
  },
  "cursor": "<string>",
  "pageSize": 123,
  "limit": 123,
  "total": 123,
  "hasNextPage": true
}

Documentation Index

Fetch the complete documentation index at: https://docs.siro.ai/llms.txt

Use this file to discover all available pages before exploring further.

Path parameter id: Siro’s internal recording id (from recording list/detail APIs). It is not a CRM external id. Request body — pick one way to point at the CRM row
  1. Siro internal id: set id to the integrations DB id of the Account, Contact, Lead, Opportunity, or Engagement (the synced CRM row’s primary key in Siro—not a Siro User id). Do not send externalId or integrationConnectionId.
  2. CRM-native id: set externalId to the id in the source CRM and integrationConnectionId to the Siro integration connection for that tenant. Do not send id.
Always include dataType (ACCOUNT, CONTACT, LEAD, OPPORTUNITY, or ENGAGEMENT). trigger is optional; allowed values appear in the request schema below. Validation (typical 422) The API rejects the body if you send both id and externalId, neither, or externalId without a non-empty integrationConnectionId. Examples
{
  "dataType": "ACCOUNT",
  "id": "01HZX0M4K3N7Q2V8R9T0Y1A2B3C"
}
{
  "dataType": "OPPORTUNITY",
  "externalId": "006xx0000123456",
  "integrationConnectionId": "01HABCD1234567890EFGHIJKLMN"
}

Authorizations

x-siro-auth-token
string
header
default:<oauth-access-token>
required

OAuth access token for user-scoped requests (Authorization Code or machine-to-machine). Send header x-siro-auth-token: <oauth-access-token>. Not an organization API key.

Path Parameters

id
string
required

Siro internal id of the recording (the recording id returned by recording APIs). Not a CRM external id.

Body

application/json

The path parameter identifies the recording. In the JSON body, identify the CRM entity using either (1) id — Siro's internal database id for that Account, Contact, Lead, Opportunity, or Engagement, or (2) externalId with integrationConnectionId — the CRM-native id plus the Siro integration connection that owns it. Send exactly one of id or externalId (not both, not neither).

dataType
enum<string>
required

Which CRM object type you are linking (must match the entity identified by id or externalId).

Available options:
ACCOUNT,
LEAD,
OPPORTUNITY,
ENGAGEMENT,
CONTACT
id
string

Siro internal id of the CRM entity row. Omit when using externalId.

externalId
string

CRM-native external id for the entity. Requires integrationConnectionId. Omit when using id.

integrationConnectionId
string

Siro integration connection id (same resource as integration connection list/detail APIs). Required when externalId is set.

trigger
enum<string>

Recording Link trigger

Available options:
FUZZY_MATCH_RECORDINGS_FOR_ENGAGEMENT,
FUZZY_MATCH_ENGAGEMENTS_FOR_RECORDING,
FUZZY_MATCH_RECORDINGS_FOR_OPPORTUNITY,
FUZZY_MATCH_OPPORTUNITIES_FOR_RECORDING,
OPPORTUNITY_DEEPLINK_ADMIN,
OPPORTUNITY_DEEPLINK,
CRM_DEEPLINK,
AUDIO_UPLOAD_DEEPLINK,
CONTACT_MATCH_AUDIO_UPLOAD,
USER_LINK_WEB,
USER_LINK_MOBILE,
USER_LINK_POST_RECORDING,
USER_UNLINK,
USER_APPOINTMENT_LIST,
CALENDAR_MATCH

Response

200 - application/json

Create or replace the CRM link on a recording

data
object
required
cursor
pageSize
number
limit
number
total
number | null
hasNextPage
boolean