# Capture sales objections for coaching

Extract pricing, timing, competitor, and other objections from Fireflies transcripts. Pair each objection with an exact excerpt and a coaching suggestion for a sales lead to review.

**Category** Revenue Operations  
**Tools** n8n, Fireflies, OpenAI, Slack, n8n Data Tables  
**Trigger** Authenticated POST after the transcript is ready  
**Package** [Workflow JSON](sales-objections-coaching.n8n.json) · [Test payloads](test-payloads.json) · [Validation report](validation-report.txt)

Import the JSON in n8n and run **Run with sample data**. The workflow imports inactive with **dryRun** enabled. The sample run uses fictional data and skips connected apps. Select credentials on the named nodes before testing live inputs.

## How it works

1. Retrieve the specified transcript and ask OpenAI for up to four objection excerpts and coaching suggestions.
2. Verify each excerpt appears in a transcript line. Send the note to the assigned sales lead in Slack when evidence exists.
3. Record the decision. If sharing is enabled, post the reviewed note to the private coaching channel and save the Slack message timestamp.

## How to use

1. Create an n8n Data Table with text columns **event_key**, **status**, **detail**, and **result_id**. Set its ID, the reviewer Slack member ID, the coaching channel ID, and the OpenAI model in **Setup**.
2. Attach separate **Header Auth** credentials for Fireflies and OpenAI using each service's bearer token. Set up the Slack app for signed approvals and attach its credential on **Ask sales lead to review**. For channel delivery, use a Slack bearer token with **chat:write** and access to the private channel.
3. Attach a separate private inbound **Header Auth** credential. Have a trusted relay verify the transcript-ready event and forward the **meetingId**. The webhook acknowledges receipt.
4. In staging, disable dry run while keeping **shareAfterApproval** false. Review exact excerpts and make sure the Slack channel is restricted to the people who should see coaching notes. Enable sharing only after that check.

## Test and operate

- A model quote absent from the transcript stops before a Slack request.
- A call without a supported objection is logged as **no_objections**.
- The configured reviewer can approve or decline. No response within two days is logged as **review_expired**.
- If delivery leaves **post_pending**, confirm the channel result before retrying.

Review all excerpts for sensitive details before approving. Decline and edit the note manually if changes are needed. Serialize events for the same meeting ID and set transcript retention for n8n and the model provider.

[n8n source](https://n8n.io/workflows/10751-analyze-sales-call-objections-with-fireflies-transcripts-gpt-4o-and-slack-feedback/) · [Fireflies transcript API](https://docs.fireflies.ai/graphql-api/query/transcript)
