Every call that Safina handles ends with a summary: who called, what they wanted, what needs to happen next. With this Zapier template, each of those summaries lands as a new row in a Google Sheet. You get a call log without typing anything, and it takes about 10 minutes to set up.
The template has two steps. The first catches the call from Safina, the second writes the row. If you work with a CRM, you keep the first step and replace the second. More on that below.
What you need
| Requirement | Details |
|---|---|
| Safina plan | Pro or higher |
| Zapier plan | Professional or higher |
| Google account | For the Sheet |
Zapier lists “Webhooks by Zapier” only on Professional, Team and Enterprise, not on Free (Zapier help).
Set it up in six steps
-
Open the template: The button creates the Zap with both steps in your own Zapier account. Connect your Google account when asked.
-
Create the Sheet: Make a new Google Sheet and name the first row: Date, Caller name, Phone number, Reason, Action items, Call ID. Pick this Sheet in the second step of the Zap.
-
Copy the Catch Hook URL: The first step (“Webhooks by Zapier, Catch Hook”) shows a unique URL. Copy it.
-
Add the URL in Safina: In the Safina app, open the Safina tab, then “CRM Synchronization”, and add a new webhook. Paste the URL as the target, choose POST, no authentication is needed for a Zapier Catch Hook. Save and activate it. The details are in the guide Connect Safina AI to Your CRM via Webhook.
-
Test: Call your Safina number and finish the call. Back in Zapier, click “Test trigger” in step one and pick the call that arrived. Then test step two and check the new row in your Sheet.
-
Turn the Zap on.
Safina sends the webhook once the call has ended, so the row appears shortly after you hang up.
What Safina sends
Safina delivers one event, call.ended. The data sits under data. A shortened example:
{
"event": "call.ended",
"event_id": "9c1f0f4e-0d9b-4c7e-9c63-3f1d5b1a7a10",
"occurred_at": "2026-10-09T14:32:00.000Z",
"data": {
"call": {
"id": "call_abc123",
"timestamp": "2026-10-09T14:29:38.000Z",
"summary": {
"caller_name": "Stefan Bauer",
"purpose": "Quote for a new meter cabinet",
"key_points": ["Old cabinet, building from 1985"],
"action_items": ["Call back tomorrow before noon"],
"urgency_level": "medium",
"custom_fields": {}
},
"call_tracking": {
"from_number": "+4917612345678",
"duration_in_seconds": 142
}
},
"contact": {
"name": "Stefan Bauer",
"phone_number": "+4917612345678"
}
}
}
In the field picker, Zapier shows these fields with readable labels, for example “Data › Call › Summary › Purpose” for the reason. These are the fields the template maps:
| Column | Field in Zapier |
|---|---|
| Date | Occurred At |
| Caller name | Data › Call › Summary › Caller Name (otherwise Data › Contact › Name) |
| Phone number | Data › Call › Call Tracking › From Number |
| Reason | Data › Call › Summary › Purpose |
| Action items | Data › Call › Summary › Action Items |
| Call ID | Data › Call › ID |
More fields are available if you want more columns: key points (key_points), urgency (urgency_level), sentiment (sentiment_level), notes (additional_notes), duration (duration_in_seconds) and the full transcript (transcript).
Map your own fields
If you define your own questions in the call script, the answers arrive too. They appear in the field picker under “Data › Call › Summary › Custom Fields”, each field with a “Value”. Add a column in your Sheet, then pick that value in the second step. Run a test call first, because Zapier only shows fields it has seen in a sample.
Lists such as action_items can contain several entries. In the Sheet, they usually end up in one cell. If you want them separated by commas, add a Formatter step in between.
Replace Google Sheets with your CRM
The first step stays the same for every target. Only the last step changes:
- HubSpot or Pipedrive: Replace “Create Spreadsheet Row” with “Create Contact” or “Create Deal”. Map name and phone number, and put the reason and action items into a note.
- Slack: Add a “Send Channel Message” step with the reason and urgency, so urgent calls reach your team at once.
- Both: Zapier lets you add more steps. Keep the Sheet as a backup log and add the CRM after it.
More ideas are on the Zapier integration page and the Google Sheets page.
Tips
- Test with a real call. A test call shows you exactly which fields arrive and how they are named.
- Filter empty calls. Add a Filter step after the trigger, for example “Summary purpose exists”. Hang-ups without a conversation then do not create rows. Filter steps do not count as tasks on Zapier.
- Phone format. The caller’s number arrives in international format, like
+4917612345678. Google Sheets can read a leading plus as a formula. Format the column as plain text before the first call. - Time zone.
occurred_atis in UTC. Use a Formatter step to convert it to your time zone.
FAQ
Do I need the Pro plan at Safina? Yes. Webhooks are available from the Pro plan.
Does the Zap cost anything per call? Each call uses Zapier tasks for the action steps. Check the task limit of your Zapier plan against your call volume.
Safina has more than one webhook? Yes. You can add several, for example one for the Sheet and one for your CRM.
What if a delivery fails? Safina tries up to three times and sends you an email if all attempts fail.