> ## Documentation Index
> Fetch the complete documentation index at: https://docs.assistable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Save call results to a CRM contact

> Map the transcript and summary from a completed call to the correct contact record.

Use a post-call workflow when you need a full transcript or specific result fields in your CRM. For connected GoHighLevel accounts, first inspect the native call note: when a contact and generated summary are available, it can already include the summary, recording reference, duration, sentiment, and task-completion analysis.

The native note is not a guarantee that every call has a transcript or that all custom fields have been populated.

## Native GHL note fields

The native note is created when the call has a linked GHL contact, working authorization, and a generated summary. It contains all of these entries:

| Entry | Value or fallback |
| - | - |
| Call ID | The call identifier. |
| Direction | Inbound or Outbound. |
| Recording Link | The recording URL, or `Not available`. |
| Call time (ms) | Duration converted to rounded milliseconds; 0 if duration is unavailable. |
| Call Time (Seconds) | Rounded duration in seconds; 0 if duration is unavailable. |
| Summary | The generated call summary. |
| Contact Sentiment | Generated sentiment; `neutral` when absent. |
| Did the assistant complete their task? | Yes when analysis records success, No when it records failure, or Unknown otherwise. |

Those fallback values do not establish that a call truly lasted zero seconds, was neutral, or achieved its goal. The native note does not include the full transcript; use a post-call mapping when you need that text.

## Store selected results

1. Configure and test the assistant's [Post-call webhook](/v3/guides/call-results/webhooks).
2. Capture a completed call with a dedicated test contact.
3. Match `location_id` and `contact_id` to the authorized destination account and contact.
4. Map `full_transcript` to a field or note intended for the transcript.
5. Map `call_summary` separately to the summary destination.
6. Store `call_id` with the result so repeated delivery can update or skip the existing record instead of adding a duplicate.
7. Add conditions for absent text and failed CRM writes before enabling follow-up messages.

If a CRM field has a size limit, choose a suitable long-text field or store a link to the complete record. Do not silently treat a truncated field as a complete transcript.

## Available data

Use the actual [post-call payload fields](/v3/guides/call-results/webhooks). Common mappings include `user_sentiment`, `call_time_seconds`, `recording_url`, `disconnection_reason`, and `extractions`.

A call's disconnection reason describes how it ended. Verify the actual appointment, order, or other business record before marking the customer's goal as completed.

## Verify it works

Say a distinctive phrase in a test call. After the call, find that phrase in the CRM transcript and compare the summary with the conversation. Verify the contact and call ID. Test a no-answer call and a repeated event; neither should overwrite a useful transcript with an invented summary.

## Troubleshooting

* **Summary exists but transcript is absent:** inspect the captured `full_transcript`; these are separate fields.
* **Wrong contact:** stop the workflow and fix account/contact mapping before another write.
* **Nothing saved:** inspect both webhook receipt and the CRM action's result.

[Send a final summary](/v3/guides/call-results/send-summary)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.