All Templates
Revenue Operations • Intermediate • 1 n8n workflow

Sales-Call Follow-Up Draft System

Turn a Fireflies transcript into an editable Gmail follow-up and a call-log record with the rep's next step. The workflow verifies the transcript, checks the recipient, validates the AI JSON, and skips completed or pending calls on replay.

By Luka Salagishvili at Uptune

Last updated:

0

One system, 1 connected workflow

Start with the complete package and setup directions. The preview below shows the entry workflow. Import every listed workflow separately, then connect their references in your n8n instance.

Get the workflow Read the setup directions

Entry workflow preview

Powered by n8n.io

Read the architecture, decision rules, and exception handling in the source blueprint .

Try this workflow with fictional sample data →

Continue with the related architecture guide .

How it works

What this workflow does

Give the sales rep an editable follow-up after a discovery call. One authenticated webhook retrieves the Fireflies transcript, asks OpenAI for a concise recap and next step, saves a Gmail draft, and records the result in a Google Sheets call log. The rep checks the recap and commitments against the transcript before sending.

The workflow imports inactive. Run with sample data uses a fictional transcript and sample draft copy, so the preview does not call Fireflies, OpenAI, Gmail, or Google Sheets.

This is the call-level execution layer for the Meeting Lifecycle & Outcome Verification blueprint; the Conversation Intelligence & Data Capture blueprint covers broader transcript capture and analysis.

Replay and recipient checks

The workflow reads the Call Log by Meeting ID before doing anything else. A row with a recorded Draft ID is treated as complete and skipped. A draft_pending row blocks the run until the rep checks Gmail, preventing a second draft from an uncertain attempt.

The optional contactEmail is used only when it matches a participant in the Fireflies transcript. If the address is omitted or does not match, the workflow still saves the draft with a blank recipient for manual handling. It never invents a recipient.

Validate the AI draft

OpenAI returns JSON with subject, message, summary, and nextStep. The workflow rejects malformed JSON, missing fields, oversized values, and a subject with a line break. The model settings default to gpt-4.1-mini and can be changed in Setup; the replacement model must accept JSON mode.

Before the Gmail call, the workflow reserves the row with draft_pending. It then creates an addressed or unaddressed draft, verifies the returned draft ID, and records draft_ready with the draft ID and call summary. No email is sent.

Validation scope

The supplied report confirms the isolated n8n 2.47.4 import, inactive state, and sample path. It also covers unique node IDs, intact connections, Code-node syntax, matching transcript IDs, recipient removal, duplicate and pending draft handling, and malformed model JSON. Live Fireflies, OpenAI, Gmail, and Google Sheets calls require a staging test with your accounts.

How to use

Before you start

  • A current n8n instance.
  • A Fireflies account with API access to the transcripts you are allowed to process.
  • An OpenAI API key and a model that supports JSON mode.
  • A Google spreadsheet tab for the call log.
  • Google Sheets and Gmail OAuth credentials.
  • A trusted webhook relay or internal service that verifies Fireflies events before forwarding them to n8n.

1. Import and run the sample

Download the complete package, extract the ZIP, and read the full setup guide. Import sales-call-follow-up-drafts.n8n.json and keep it inactive.

Open Run with sample data and choose Test workflow. Draft preview should show the sample subject, recap, and next step without making any provider calls.

2. Create the call log

Create a spreadsheet tab named Call Log with these exact headers:

Meeting IDContact EmailSummaryNext StepStatusDraft ID

Format Meeting ID as plain text. Enter the spreadsheet ID in Setup. Select the Google Sheets OAuth credential on Find existing call, Reserve call draft, and Record call draft.

3. Configure the model and credentials

In Setup, set spreadsheetId and the model name. Keep dryRun true while testing.

  • Add a Header Auth credential on Receive event for the trusted inbound relay.
  • Add a Header Auth credential on Read Fireflies transcript using Authorization: Bearer <Fireflies API key>.
  • Add a separate Header Auth credential on Draft with OpenAI using Authorization: Bearer <OpenAI API key>.
  • Select the Gmail OAuth credential on Save addressed draft and Save unaddressed draft.

4. Send a test call

Forward {"meetingId":"...","contactEmail":"..."} to the production webhook after the relay verifies the Fireflies event. The contact email can be omitted. Use the supplied test payloads for a matching recipient, no recipient, and an invalid meeting ID. The HTTP response acknowledges receipt; check the n8n execution and call log for the outcome.

The requested transcript ID must match the transcript Fireflies returns. The workflow stops if the transcript is empty or longer than 40,000 characters. The optional contact address is removed unless it is an exact transcript participant.

5. Go live

Set dryRun to false in a staging workflow. Send a recording with permission to use the transcript and confirm the saved draft before activating. Serialize deliveries for the same meeting ID. Limit workflow and spreadsheet access to people authorized to see call notes, and configure execution retention for transcripts. The model checks shape and length; the rep verifies what the participants actually said.

Use the Proposal Draft & Slack Approval System when the call is ready to become a proposal. Use the Client Onboarding & Project Handoff Automation after the deal is signed, and the Calendly Booking Sync System to keep the next meeting in Airtable. Read the Meeting Lifecycle & Outcome Verification blueprint for the wider meeting process.

Use the HubSpot Ghosted Proposal Follow-Up & Recovery System when the next step is a proposal that needs follow-up.

By Luka Salagishvili at Uptune

Luka shares practical workflow templates and automation guides at Uptune, covering connected business tools, implementation steps, and testing before launch.

Luka on LinkedIn · Book a consultation

Get the complete automation system

Download the workflow and the supporting files together. Extract the ZIP, then import the workflow JSON listed below separately. Configuration, source code, and other supporting files are not n8n workflow imports.

Download complete package (ZIP)

1 connected n8n workflow

It imports inactive. Follow the package setup directions before activating schedules or delivery.

  1. Sales-call follow-up draft workflow

    One authenticated webhook reads the Fireflies transcript, drafts a validated Gmail follow-up with OpenAI, and records the summary, next step, and draft ID in Google Sheets.

    sales-call-follow-up-drafts.n8n.json
    Download workflow 01

Setup, integration, and validation files

  • Complete setup guide

    Call Log structure, credential binding, webhook contract, model settings, draft states, and replay recovery.

    README.md
  • Test payloads

    Calls with a matching attendee, no recipient, and an invalid meeting ID for the sample path and failure cases.

    test-payloads.json
  • Supplied validation report

    Isolated n8n 2.47.4 import, sample-path result, structural checks, and file hashes. Live provider authentication and calls were not executed.

    validation-report.txt