In short
Built for a client running a sales team that makes 50 to 100 calls. When a call ends in GoHighLevel, a webhook fires, Make pulls the recording from Twilio, AssemblyAI transcribes it, and OpenAI turns the transcript into an action plan and a ready-to-send follow-up message. Both are saved as a note on the GoHighLevel contact. Reps stopped replaying recordings to remember what was agreed: they open the contact, read the plan, and copy the follow-up message.
Project description
A sales team making 50 to 100 calls moves straight from one conversation to the next, and the details of the last call are the first thing lost. Reps either replayed recordings to remember what was agreed, or skipped the follow-up. This Make.com scenario listens for the end of every call, transcribes the recording, and writes the action plan and the follow-up message onto the contact in GoHighLevel before the rep needs them.
Tools & Deliverables
- Make.com webhook that fires when a call ends in GoHighLevel
- Text parser extracting the recording reference from the call event
- Twilio module downloading the call recording media
- AssemblyAI upload and transcription of the full call
- OpenAI turning the transcript into an action plan and a personalised follow-up message
- GoHighLevel note added to the contact, so everything sits on the record the rep already uses
The problem
- Call volume erases memory. At 50 to 100 calls, reps move to the next call immediately, and what was promised on the last one fades within the hour.
- Recordings exist but nobody replays them. Every call was recorded, but finding and listening to the right one before a follow-up takes longer than the follow-up itself.
- Follow-ups were inconsistent. Some contacts got a thoughtful message, others got nothing, depending on how busy the rep was that day.
- The CRM did not hold the conversation. The contact record showed that a call happened, not what was said or what should happen next.
Approach
The trigger is the call itself. When a call ends in GoHighLevel, a webhook delivers the event to Make, and a text parser pulls out the recording reference. Make then downloads the recording from Twilio, which is where the audio actually lives, and hands it to AssemblyAI in two steps: the audio file is uploaded, then the transcription is requested.
The transcript goes to OpenAI with instructions to produce two things: an action plan covering what was discussed, what was agreed and what happens next, and a follow-up message written to that specific contact. Both are posted back to GoHighLevel as a note on the contact. That placement is deliberate. The rep does not open another tool or another sheet, because the plan and the message appear on the record they already open before contacting the lead.
Solution
Every call now leaves a trace that matters. When a rep returns to a contact, the note shows what was said, what was agreed and the follow-up message ready to send. Following up becomes reading a note and copying a message, rather than finding a recording and listening to it, which saves time on every call and stops follow-ups being skipped on the busiest days.
Managers get a side benefit: every conversation is summarised in the same format on the contact, so reviewing a rep's pipeline or handing an account to someone else no longer depends on that rep's memory. The scenario runs for every call without anyone triggering it, and the transcript provider or the AI model can be swapped without changing the rest of the flow.
FAQ
Does the rep have to do anything to trigger it?
No. It fires on the call-ended event in GoHighLevel and runs for every call.
Why Twilio and AssemblyAI rather than one tool?
The recording lives in Twilio, which powers the calling, and AssemblyAI produces accurate transcripts of long calls. Each does the part it is best at.
What does the note contain?
An action plan covering what was discussed, what was agreed and the next steps, plus a follow-up message written to that contact, ready to copy.
Can the follow-up be sent automatically?
Yes, though it is safer to have a person approve it first. The same flow can drop the message into a GoHighLevel conversation as a draft or trigger a workflow.
Does it work with calling tools other than GoHighLevel?
Yes. Any dialler that emits a call-ended event and exposes the recording can feed the same pipeline, such as Aircall, RingCentral, JustCall or Close.





