Submit a sales call recording URL and describe the objection type you want to find — such as "pricing too expensive" or "competitor comparison" — and the workflow scans the recording automatically. WayinVideo's Find Moments API locates up to 5 exact moments in the recording that match your search, returning each one with a title, description, timestamp, and relevance score. GPT-4o-mini then analyzes each moment and writes a structured coaching note — objection category, what happened, rep response assessment, specific coaching advice, and a first-person suggested reframe ready to use on the next call. Every moment is saved as a separate Airtable record with Status set to Needs Review. Built for sales managers and revenue teams who want to track objection patterns across their team's calls without manually reviewing every recording.
⚠️ WayinVideo API key appears in 2 steps — replace
YOUR_WAYINVIDEO_API_KEYin both 2. WayinVideo — Submit Find Moments and 4. WayinVideo — Get Moments Results. Missing either one will cause the workflow to fail.
Estimated Setup Time: 20–25 minutes
Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import
Get your WayinVideo API key — Log in to your WayinVideo account → go to Account Settings → copy your API key
Add your WayinVideo API key to node 2 — Open node 2. WayinVideo — Submit Find Moments → find the Authorization header value Bearer YOUR_WAYINVIDEO_API_KEY → replace YOUR_WAYINVIDEO_API_KEY with your actual key
Add your WayinVideo API key to node 4 — Open node 4. WayinVideo — Get Moments Results → find the same Authorization header → replace YOUR_WAYINVIDEO_API_KEY with the same key
Connect OpenAI — Open node 9. OpenAI — GPT-4o-mini Model → click the credential dropdown → add your OpenAI API key → test the connection
Create your Airtable table — In Airtable, open your base → create a table named Sales Objections → add these 16 fields: Call Date, Rep Name, Contact Name, Company, Call Purpose, Objection Type, Objection Category, Moment Title, Objection Description, Timestamp in Recording, Relevance Score (Number), Rep Response Assessment, Coaching Note, Suggested Reframe, Recording URL, Status
Get your Airtable Base ID — Open your Airtable base in a browser → the Base ID is in the URL — it starts with app and looks like appXXXXXXXXXXXXX
Get your Airtable Personal Access Token — Go to airtable.com/create/tokens → click Create new token → give it a name → add scope data.records:write → add your base under Access → click Create token → copy the token
Add your Airtable credentials to node 11 — Open node 11. HTTP — Save to Airtable → in the URL, replace YOUR_AIRTABLE_BASE_ID with your actual Base ID and YOUR_AIRTABLE_TABLE_NAME with Sales%20Objections (URL-encoded with %20 for the space) → in the Authorization header, replace YOUR_AIRTABLE_API_KEY with your Personal Access Token
Activate the workflow — Toggle the workflow to Active → copy the Form URL from node 1. Form — Call Recording + Details → open it in a browser to submit your first call
Step 1 — Form: Call Recording + Details
You open the form URL in a browser and fill in seven fields: the call recording URL, the sales rep name, the contact name, the company name, the call purpose (e.g. Discovery Call, Demo, Pricing Call), the call date, and the objection type you want to search for (e.g. "pricing too expensive", "competitor comparison", "missing feature"). The objection search query is the most important field — the more specific and descriptive it is, the better WayinVideo's results will be.
Step 2 — HTTP: WayinVideo — Submit Find Moments
The recording URL and your search query are sent to WayinVideo's Find Moments API. The request asks for up to 5 matching moments with export disabled (since you only need the metadata, not video downloads). A project name is auto-generated from the contact name and company. WayinVideo accepts the job and returns a task ID.
Step 3 — Wait: 90 Seconds
The workflow pauses for 90 seconds before the first status check, giving WayinVideo time to scan the full recording.
Step 4 — HTTP: WayinVideo — Get Moments Results
A GET request checks the WayinVideo find-moments results endpoint using the task ID from step 2. It returns the current processing status and, once complete, the full clips array with title, description, timestamp, relevance score, and tags for each matched moment.
Step 5 — IF: Find Moments Complete?
This is the polling gate. If the status equals SUCCEEDED (YES path), the moments are ready and the workflow moves forward to clip extraction. If still processing (NO path), the workflow routes to 6. Wait — 30 Seconds Retry which pauses 30 seconds then loops back to step 4 to check again. This repeats until SUCCEEDED.
Step 6 — Wait: 30 Seconds Retry
When results are not yet ready, the workflow waits 30 seconds then returns to step 4 for another check. The loop continues automatically.
Step 7 — Code: Extract Objection Clips
The clips array from WayinVideo is read and split into individual rows — one per matching moment. If no clips are returned, the step throws a clear error with a suggestion to try a different query. For each clip, the millisecond timestamps are converted to MM:SS format. All seven form inputs are carried forward alongside each clip's data so every Airtable record has full context.
Step 8 — AI Agent: Generate Coaching Note
GPT-4o-mini receives the call context and the specific moment's metadata: its title, description, timestamp range, relevance score, and tags. It writes a structured 5-section coaching analysis. The prompt instructs GPT to base everything on the moment description provided — not to invent content. The output uses five labeled sections: OBJECTION_CATEGORY, WHAT_HAPPENED, REP_RESPONSE_ASSESSMENT, COACHING_NOTE, and SUGGESTED_REFRAME.
Step 9 — OpenAI: GPT-4o-mini Model
This is the language model powering the coaching analysis. It runs with default settings for consistent structured output.
Step 10 — Code: Parse Coaching Output
All five labeled sections are extracted from the AI output using regex. The objection description field combines GPT's "what happened" analysis with WayinVideo's original clip description for maximum context. All 16 Airtable field values are assembled and packaged ready for the API call.
Step 11 — HTTP: Save to Airtable
A POST request creates one Airtable record in your Sales Objections table with all 16 fields populated. Status is set to Needs Review on every record so managers can filter the table to see only records awaiting their attention. Airtable returns the new record ID on success.
The final result is up to 5 Airtable records — one per objection moment found — each containing the full coaching analysis, timestamp, relevance score, and a first-person suggested reframe ready for the rep to practice.
✅ Find Moments API — no transcription needed — This workflow uses WayinVideo's semantic search to find moments directly, which is faster than transcribing and then searching through text
✅ Relevance score per moment — Every match comes with a score out of 100 so you can instantly see which moments are the strongest matches for your search query
✅ Eight objection categories — auto-assigned — GPT categorizes each objection into Pricing, Competitor, Timing, Feature Gap, Trust, Authority, Need, or Other — making your Airtable filterable by category across all calls
✅ First-person suggested reframe — The coaching note ends with an exact alternative response the rep can rehearse — not generic advice, but specific language ready to use
✅ One Airtable record per moment — Each moment gets its own record so managers can review, comment on, and track each objection instance independently
✅ Status set to Needs Review automatically — Every new record starts in a review queue — managers see exactly what requires their attention without any manual tagging
✅ Timestamped moments linked to recording URL — Every record includes both the timestamp range and the full recording URL so the manager can jump straight to that moment in the call
Increase the number of moments returned — In node 2. WayinVideo — Submit Find Moments, change "limit": 5 to a higher number such as 10 to find more matching moments per call — useful for longer recordings or broader search queries.
Add a Slack notification to the sales manager — After node 11. HTTP — Save to Airtable, add a Slack step that posts the rep name, objection category, and a direct Airtable link to a #sales-coaching channel so managers are notified immediately without checking Airtable.
Add a retry limit to stop infinite polling — Before node 6. Wait — 30 Seconds Retry, add a Set step that increments a poll counter, then add a second IF check to stop after 15 polls and send a Gmail error notification instead of looping indefinitely.
Search for multiple objection types in one run — In node 1. Form — Call Recording + Details, allow comma-separated queries in the Objection Type field, then add a code step after the form that splits them and runs the Find Moments submission once per query type.
Auto-assign Airtable records to a specific reviewer — In node 11. HTTP — Save to Airtable, add an "Assigned To" field to the JSON body using the Sales Rep Name to route each rep's records to their specific manager — requires an Airtable Collaborator field type.
WayinVideo returning an error on submission:
YOUR_WAYINVIDEO_API_KEY in node 2. WayinVideo — Submit Find Moments is replaced with your actual API key — not the placeholderNo moments found (empty clips array):
Workflow stuck in the polling loop:
Airtable records not being created:
YOUR_AIRTABLE_BASE_ID in the URL of node 11. HTTP — Save to Airtable is replaced with your actual Base ID starting with appYOUR_AIRTABLE_TABLE_NAME is replaced — if your table name has a space, encode it as %20 in the URL (e.g. Sales%20Objections)YOUR_AIRTABLE_API_KEY in the Authorization header is replaced with a valid Personal Access Token with data.records:write scope enabled for your baseGPT not generating coaching sections:
Need help setting this up or want a custom version built for your team or agency?
📧 Email: [email protected]
🌐 Website: https://www.incrementors.com/