The Log External Call workflow action adds calls handled by a third-party calling system to a contact's activity in ZipLeads. You can map the external call data into the action. Details such as call direction, date, phone numbers, call status and any recording reference then appear in the contact's call history. This keeps externally handled calls visible alongside the contact's other activity in ZipLeads.
What Is the Log External Call Workflow Action?
Log External Call is useful when your business uses a calling provider outside ZipLeads. You still need the call activity linked to the right CRM contact. An Inbound Webhook is a common way to receive this external call data. However, the action can use any values available in the workflow.
Key Benefits of Log External Call
Logging third-party calls in ZipLeads gives your team a fuller view of contact activity. Calls don't have to start from ZipLeads' own calling system. Mapping external call information into the CRM also makes it easier to review call outcomes and recordings from the contact's history.
Centralised Call History: Keep externally handled calls linked to the right ZipLeads contact.
Third-Party Call Visibility: Bring call information from an external calling provider into ZipLeads.
Call Detail Mapping: Store call information such as direction, date, From and To numbers, and call status.
Recording Access: Include a recording reference so supported call recordings can be opened from the logged call.
Flexible Workflow Integration: Use workflow data, including values received through an Inbound Webhook, to fill in the external call record.
How Log External Call Works
Log External Call takes the call information available in a workflow and links it to a ZipLeads contact. Two things must happen before the call can be added to the contact's history. The external call data must reach the workflow, and the right contact must be identified.
A common setup follows this flow:
Third-party calling system → Inbound Webhook → identify or create the contact → Log External Call → contact Conversations
For example, a third-party calling provider can send call information to a ZipLeads Inbound Webhook after a call ends. The workflow can then work out whether the call was inbound or outbound and identify the external caller or recipient. It then maps the call information into Log External Call.
Note: Inbound Webhook is a common way to supply third-party call data. It isn't part of the Log External Call action itself.
Log External Call Field Reference
Each Log External Call field is a different part of the external call record. Mapping the right source data makes sure the contact's activity accurately reflects the call handled by the third-party system.
Field | Purpose | Mapping guidance |
Direction | Shows whether the external call was inbound or outbound. | Map the source value for the direction of the call. |
Date | Shows when the call happened. | Map the date/time value supplied for the external call. |
To | The destination phone number. | Map the destination number supplied by the calling system. |
From | The originating phone number. | Map the originating number supplied by the calling system. |
Call Status | The system-recorded outcome or status of the call. | Map the external value that represents the call outcome. |
Attachment | Links recording information to the logged call. | Map the compatible recording reference from the external calling system, when available. |
Important: The value format for fields such as Direction, Date, Call Status and Attachment should match the values supported by the Log External Call action and your integration. Don't assume a third-party provider's custom disposition or proprietary status automatically maps to the matching ZipLeads field.
For consistent phone numbers and contact matching, use international E.164-style formatting where possible, such as +61400000000.
How to Set Up Log External Call Using an Inbound Webhook
An Inbound Webhook is a practical way for an external calling system to send call information into a ZipLeads workflow. Use realistic sample data during setup. This makes the incoming fields available for mapping and helps you check the workflow before live calls come through.
1. Create the Workflow and Add an Inbound Webhook
Go to Automation > Workflows.
Create a new workflow or open the workflow you want to use.
Add the Inbound Webhook workflow trigger.
Copy the webhook URL provided by ZipLeads.
Set up your external calling system to send the call data to that webhook.
Your payload should contain the information you plan to use in the workflow, such as:
Call direction
From number
To number
Call date/time
Call status
Recording reference, when available
Note: Use a valid payload structure supported by the Inbound Webhook trigger. If the external system's payload structure changes later, refresh the webhook mapping reference so the updated fields are available for mapping.
2. Send Representative Sample Call Data
Sample data lets ZipLeads identify the incoming fields you'll use later in the workflow. Use a sample that includes the same fields your calling system sends during normal use.
Send a sample request from the external system to the Inbound Webhook.
Confirm that ZipLeads receives the sample.
Review the available webhook values.
Check that the call fields you need are there before continuing.
3. Separate Inbound and Outbound Calls
Inbound and outbound calls use different external phone numbers to identify the CRM contact. Splitting the two directions makes sure the workflow matches the caller for inbound calls and the recipient for outbound calls.
Add an If/Else action after the webhook trigger.
Set the condition using the incoming call-direction value.
Create one branch for inbound calls.
Create another branch for outbound calls.
4. Identify or Create the Contact
Log External Call needs to be linked to the right CRM contact. Map the external party's phone number into the right contact action before logging the call.
Use the following mapping:
Call direction | Number used to identify the contact | Why |
Inbound | From Number | The external caller is calling your business. |
Outbound | To Number | Your business is calling the external contact. |
For the inbound branch, map the webhook's From Number into the Phone field.
For the outbound branch, map the webhook's To Number into the Phone field.
Use Create Contact when the workflow should create, update or match the contact using the mapped information, following ZipLeads' contact-matching behaviour.
Important: Contact matching can be affected by the values you provide and your deduplication settings. Test the workflow with realistic records before processing live call data.
If you want more control over whether a contact already exists, try Find Contact. You can then branch on Contact Found or Contact Not Found and decide whether to create a new contact.
5. Add the Log External Call Action
Once the workflow has the right contact, add Log External Call and map the incoming call information. Each field should use the matching value from your external calling system.
Add a workflow action after the contact-identification step.
Select Log External Call.
Find the custom-value/mapping control for each field.
Select the values received from the Inbound Webhook.
Map the call data into:
Direction
Date
To
From
Call Status
Attachment, when a compatible recording reference is available
Save the action.
Repeat this setup in both the inbound and outbound branches.
Call Status: Map the value for the system outcome of the call. Don't map an agent-selected custom disposition unless your integration specifically translates it into the intended call-status value.
Recording: When the external calling system provides a compatible recording reference, map it into Attachment. Check the resulting call entry to confirm the recording can be opened from ZipLeads.
Test and Verify the Logged Call
Testing confirms that the external payload, contact matching, branching and field mappings all work together. A successful webhook request alone doesn't guarantee the call is logged against the right contact. Check the whole workflow before relying on it for live calls.
Before publishing the workflow:
Send a realistic inbound call payload.
Confirm the inbound branch runs.
Check that the From Number identifies the intended contact.
Confirm the call is logged against that contact.
Send a realistic outbound call payload.
Confirm the outbound branch runs.
Check that the To Number identifies the intended contact.
Open the contact in ZipLeads.
Review the logged call in the contact's Conversations area.
Confirm the details are correct, including:
Direction
Date/time
From number
To number
Call status
Recording, when provided
Publish the workflow once the test results match what you expect.
If the call isn't logged correctly, review the workflow's Execution Logs or execution history. Confirm that:
The webhook received the expected data.
The If/Else condition picked the right branch.
The right contact was found or created.
The required mapped values were there when Log External Call ran.
The external payload structure still matches the fields set up in the workflow.
Quick Walkthrough With Screenshots
This action works well with the Inbound Webhook trigger. The trigger gives you a webhook URL that your calling system can call to share call details whenever a call takes place.
To set up the Inbound Webhook trigger, see the help article on using the Inbound Webhook workflow trigger.
Once the trigger is set up, add the If/Else branch with the direction field to separate inbound and outbound flows.
Note: The direction field can be found under the Inbound Webhook Trigger option.
After creating the two branches for inbound and outbound calls, add the "Create Contact" action. This identifies the contact the call should be posted to, using the phone numbers you pass in the webhook.
In the Create Contact action, map the Phone field to "From Number" in the inbound call flow and "To Number" in the outbound call flow. This creates or identifies the contact linked to that phone number.
Next, add the Log External Call action.
For each field (Direction, Date, To, From, Call Status and Attachment), set the value by clicking the custom values icon > Inbound Webhook Trigger.
Once the workflow is published, external calls are logged in the CRM and shown in the contact's Conversations section.
Call recordings can also be passed to the CRM and are shown in the conversation.
Frequently Asked Questions
Q: Is an Inbound Webhook required to use Log External Call?
Inbound Webhook is a common way to receive third-party call data, but the action itself uses whatever values are available in the workflow. Use the data source that provides the call information you need.
Q: Does Log External Call need a contact?
Yes. The external call is logged against a contact's CRM activity, so the workflow should have the right contact before Log External Call runs. When call data comes in through an Inbound Webhook, you can identify, find or create the contact before logging the call.
Q: Should I use Create Contact or Find Contact?
Use Create Contact when the workflow should create, update or match the contact using the normal matching behaviour. Use Find Contact when you want clear control over what happens when a matching contact is or isn't found.
Q: How can I reduce the risk of creating duplicate contacts?
Map consistent identifying information, review your contact deduplication settings and test the workflow with realistic contact records. Find Contact is also handy when you want to check for an existing record before creating one.
Q: Can I include a third-party call recording?
Yes. Log External Call has an Attachment field for recording information. Map the compatible recording reference from the external calling system and test the call entry to confirm the recording can be opened.
Q: What should I map into Call Status?
Map the third-party value that represents the system outcome or status of the call. Don't assume an agent-selected custom disposition is the same as Call Status unless your integration deliberately maps those values.
Q: Why isn't the external call appearing in Conversations?
Review the workflow execution. Confirm the webhook received the expected values, the right branch ran, the intended contact was identified and the Log External Call fields were filled in. If the external payload changed after the workflow was set up, refresh the webhook mapping reference and check the field mappings again.






