Skip to content
  • There are no suggestions because the search field is empty.

Outbound Post-Call Payload Reference

Use this guide to understand the data SalesAi sends through outbound post-call webhooks after a call is completed. This reference is intended for developers, integration specialists, and CRM administrators building integrations with SalesAi.

 

Recommended Flow

SalesAi → Outbound Webhook → CRM / Middleware / Database

Common destinations include:

  • HubSpot
  • Salesforce
  • GoHighLevel
  • Zapier
  • n8n
  • Make
  • Custom APIs
  • Data Warehouses

The outbound webhook is triggered after the call has completed and all post-call data has been generated.

Payload Structure

The SalesAi outbound webhook contains four primary sections:

  1. Call Information
  2. Contact Information
  3. Timestamps
  4. Transcript Data
Call Information Fields

Field

Description

id

Unique call identifier

call_direction

Direction of the call

call_flow

Call workflow type

call_status

Final call status

call_outcome

Final call outcome

call_summary

AI-generated call summary

call_recording_url

Recording URL if available

call_duration

Length of call in seconds

call_began_at

Call start timestamp

call_ended_at

Call end timestamp

Example

{

"id": "b69297d7-b481-4ff6-b0ba-6945224c51fe",

"call_direction": "OUTBOUND",

"call_flow": "PROMPT",

"call_status": "SUCCESS",

"call_outcome": "ANSWERED",

"call_summary": "Otto answered the call from the Google representative.",

"call_recording_url": "",

"call_duration": 37,

"call_began_at": 1780503202346,

"call_ended_at": 1780503239582

}

Contact Information Fields

The contact object contains information about the person involved in the call.

Field

Description

first_name

Contact first name

last_name

Contact last name

company_name

Company name

email

Email address

phone_number

Phone number

linkedin_url

LinkedIn profile URL

job_title

Job title

department

Department

seniority_level

Seniority level

Address Fields

Field

Description

street

Street address

city

City

state

State

zip_code

Postal code

country

Country

timezone

Contact timezone

Example

{

"contact": {

"first_name": "Otto",

"last_name": "AU Test",

"email": "shahji84@gmail.com",

"phone_number": "+17087156080",

"company_name": "",

"linkedin_url": "",

"job_title": "",

"department": "",

"seniority_level": ""

}

}

Timestamp Fields

SalesAi includes several timestamp values.

Field

Description

created_at

Record creation timestamp

updated_at

Record update timestamp

call_began_at

Call start timestamp

call_ended_at

Call end timestamp

Important Note

SalesAi timestamps are returned as Unix Epoch timestamps in milliseconds.

Example:

{

"created_at": 1780503255352,

"updated_at": 1780503255352

}

Developers may need to convert these values into local date and time formats within their application.

Transcript Data

The transcript field contains the conversation between the contact and the AI agent.

The transcript is returned as an array of transcript entries.

Transcript Fields

Field

Description

id

Transcript entry identifier

user

Speaker type

text

Spoken text

created_at

Transcript timestamp

Speaker Values

Value

Description

user

Contact speaking

assistant

SalesAi AI agent speaking

Example Transcript

{

"transcript": [

{

"id": 1,

"user": "user",

"text": "Hello. This is Otto.",

"created_at": 1780503205

},

{

"id": 2,

"user": "assistant",

"text": "Hello Otto, my name is [Agent Name] and I'm calling from Google.",

"created_at": 1780503207

}

]

}

Complete Example Payload

{

"id": "b69297d7-b481-4ff6-b0ba-6945224c51fe",

"call_direction": "OUTBOUND",

"call_flow": "PROMPT",

"call_status": "SUCCESS",

"call_outcome": "ANSWERED",

"call_summary": "Otto answered the call from the Google representative.",

"call_recording_url": "",

"call_duration": 37,

"call_began_at": 1780503202346,

"call_ended_at": 1780503239582,

"created_at": 1780503255352,

"updated_at": 1780503255352,

"contact": {

"first_name": "Otto",

"last_name": "AU Test",

"email": "shahji84@gmail.com",

"phone_number": "+17087156080"

},

"transcript": [

{

"id": 1,

"user": "user",

"text": "Hello. This is Otto."

},

{

"id": 2,

"user": "assistant",

"text": "Hello Otto, my name is [Agent Name] and I'm calling from Google."

}

]

}

Common Call Outcomes

The exact values may vary by workflow, but these are the most common outcomes used in integrations.

Outcome

Description

ANSWERED

Contact answered the call

VOICEMAIL

Voicemail was reached

NO ANSWER

Contact did not answer

BOOKED

Appointment booked

TRANSFERRED

Call transferred

DNC

Contact requested no further contact

Common Call Status Values

Status

Description

SUCCESS

Call completed successfully

FAILED

Call could not be completed

Common Integration Use Cases

Developers commonly use this payload to:

  • Update CRM records
  • Create CRM timeline activities
  • Generate tasks
  • Store transcripts
  • Store call recordings
  • Trigger follow-up workflows
  • Generate AI analysis
  • Build reporting dashboards
Best Practices

When building integrations with the outbound payload:

  • Store the call ID for tracking.
  • Store the call outcome for reporting.
  • Save the call summary to the CRM.
  • Save the recording URL when available.
  • Save the transcript when detailed call history is required.
  • Convert Unix timestamps into local date formats.
  • Handle missing optional fields gracefully.
Final Validation

Before moving an integration into production:

  1. Verify the webhook is received successfully.
  2. Confirm all required fields are mapped correctly.
  3. Validate timestamp conversion logic.
  4. Confirm transcript processing works correctly.
  5. Verify CRM updates complete successfully.
  6. Test multiple call outcomes.
  7. Validate handling of optional or blank fields.

Once validation is complete, the integration is ready for production use.