See llms.txt for all machine-readable content.

Back to Templates

Brief sales reps before calls and follow up debriefs with Apify, DeepSeek, ElevenLabs, Gmail, and Sheets

Reps usually read about an account ten minutes before the call, or not at all. This workflow takes a short webhook from your CRM or calendar, researches the company on the open web and emails the rep a one page brief with a spoken version. It also refuses duplicate requests, holds back thin research and asks the rep how the call went afterwards.

Last updated: November 2026.

Quick Overview

A POST webhook receives the company, contact name, meeting time and rep email. Incomplete requests are logged and bounced back to the rep with the reason. Valid ones are checked against an account_briefs ledger so the same meeting is not researched twice in 24 hours. Apify RAG Web Browser runs with three retries, and a DeepSeek agent writes a headline, summary, signals with sources, an opening line, questions and a narration. A quality gate decides whether ElevenLabs voices the brief or the rep gets a text version flagged for checking. Every delivery is logged with its Gmail message id, a weekday lane asks reps for a debrief after the meeting, and a Monday report sums up the week.

How it works

  1. Research Requested receives the payload and Normalize Account validates the company and rep_email and builds the search query.
  2. Invalid requests are appended to rejected_requests and the rep gets an email listing the problems.
  3. Valid requests read account_briefs. If the same company and meeting_at were briefed in the last 24 hours, the rep gets a duplicate notice and no credits are spent.
  4. Apify searches the web and the dataset is read back. Both calls retry three times, and a final failure is written to run_log and emailed to the rep.
  5. Shape Research keeps the readable text of each source and the agent writes the brief using only those sources.
  6. Check Brief Quality needs a summary, at least two sources, at least three questions and a 60 to 200 word narration.
  7. Passing briefs are voiced by ElevenLabs and emailed to the rep with the mp3 attached. Thin briefs go out as text with a "check before the call" subject and no audio.
  8. Build Delivery Record creates a brief id and appends the brief, quality note, Gmail message id and sent status to account_briefs.
  9. Weekdays at 17:00 the log is scanned for meetings dated today or earlier that have no debrief request. The rep gets one email asking for the outcome and the row is marked.
  10. Mondays at 08:00 the last seven days are counted and emailed to the manager.

Setup

  1. Connect Apify and confirm the RAG Web Browser actor is on your plan.
  2. Add an OpenAI-compatible credential on Brief Model. The template points at a DeepSeek endpoint.
  3. Create account_briefs, rejected_requests and run_log tabs in one Google Sheets file and select it in every Sheets node.
  4. Add ElevenLabs and pick a voice on Speak Account Brief, then connect Gmail.
  5. Send company, contact_name, meeting_at (yyyy-MM-dd HH:mm) and rep_email from your CRM to the webhook path.
  6. Replace [email protected] on Email Brief Digest with the manager address.

Quick Answers

What if two people request the same brief?
The second request within 24 hours for the same company and meeting gets a notice pointing to the first email, and nothing else runs.

What does a thin brief look like?
If research returns fewer than two sources, fewer than three questions or an odd narration length, the rep gets the written brief with a warning subject and no audio.

Does the rep get chased more than once for a debrief?
No. After the debrief email the row is marked debrief_requested yes and the daily scan skips it.

Where do failures show up?
Apify failures land in run_log and in the rep's inbox, rejected requests land in rejected_requests, and the weekly report counts unconfirmed deliveries.

Additional info

Built with n8n. Need an assessment on your business? Feel free to reach out at https://khmuhtadin.com/consultation/