How to read this SOP
Every workflow below follows the same four-part layout, so anyone on the team can pick up any workflow and know where to look.
The trigger, then each step in the order the system runs it.
The problem it solves for the broker and the team.
What you can see and measure once it's live.
The same steps as a picture, branch by branch.
SELSeller pipeline: owners looking to sellRECAgent Recruiting pipeline: agents joining the brokerageSNSeller Needs pipeline: sell, financing or consultingALLShared across pipelinesIMPLead import toolsWF-3-1Group 3, step 1 (groups: 1 setup, 2 calls, 3 summaries, 4 appointments)How the workflows fit together
A lead enters, gets labelled and placed on a board, then every call and every meeting moves it forward automatically. The broker is only pulled in when a human decision is needed.
All 15 workflows
Priority 1 items are quick fixes that unblock the lead flow. Priority 2 are rebuilds and new workflows. Priority 3 is clean-up and consolidation. Each one ends with an acceptance test before moving on.
| # | Workflow | Stage | Type | Priority | When |
|---|---|---|---|---|---|
| 1 | Set Call Type SEL-WF-1-1 · REC-WF-1-1 | Lead intake | Fix | P1 | Day 1 to 2 |
| 2 | Create Opportunity when Call Type is Set SEL-WF-1-2 · REC-WF-1-2 | Lead intake | Fix | P1 | Day 1 to 2, catch-up in Week 2 |
| 3 | Unsorted Call Summary ALL-WF-3-1 | Lead intake | Fix, then improve | P1 | Day 1 to 2, sorting step in Week 1 |
| 4 | Lead Import IMP-WF-SEL · IMP-WF-REC · IMP-WF-SN | Lead intake | Rebuild | P3 | Week 2 to 3 |
| 5 | Call Counter ALL-WF-2-1 | Calls | Improve | P3 | Week 2 |
| 6 | Seller Call Summary, Q&A + Cover Letter SEL-WF-3-1 | Calls | Improve | P2 | Week 1 |
| 7 | Recruit Call Summary, Email + Task REC-WF-3-2 | Calls | Improve | P2 | Week 1 |
| 8 | Call Answered Stage Guard SEL-WF-2-1 · REC-WF-2-1 | Calls | Fix, then retire | P1 | Day 1 to 2, retired in Week 1 |
| 9 | Missed Call Ladder SEL-WF-2-2 · REC-WF-2-2 | Calls | Rebuild | P2 | Week 1 |
| 10 | Seller Needs Routing SN-WF-3-1 | Seller needs | Rebuild | P2 | Week 1 |
| 11 | Seller Needs Sync on Manual Stage Move SN-WF-3-2 | Seller needs | Fix | P3 | Week 2 |
| 12 | Booked from Calendar SEL-WF-4-1 · REC-WF-4-1 | Appointments | Fix | P1 | Day 1 to 2 |
| 13 | Appointment Confirmations and Reminders ALL-WF-4-2 | Appointments | New | P2 | Week 1 |
| 14 | Appointment Outcome Reminder ALL-WF-4-3 | Appointments | New | P2 | Week 1 |
| 15 | Appointment Outcome ALL-WF-4-4 | Appointments | Rebuild | P2 | Week 1 |
Lead intake
How a lead gets onto the right board with an owner, a source and a Call Type.
Set Call Type
Labels every pipeline contact as a Seller Call or a Recruit Call, once, when their card is created.
- A card is created in the Seller pipeline or the Agent Recruiting pipeline.
- The workflow sets the contact's Call Type field: Seller Call for the Seller pipeline, Recruit Call for Agent Recruiting.
- Dragging the card between stages does not run it again. It only fires on card creation.
Build notes
- Remove any Pipeline Stage Changed trigger; keep Opportunity Created only.
- Later option: replace the single Call Type field with two yes/no fields, Is Seller and Is Recruit, if many contacts end up in both pipelines.
- Call Type is the switch every call workflow reads to pick the right summary, prompt and email, so it has to be set early and stay stable.
- Firing only on card creation stops the workflow re-running every time someone moves a card.
- Every pipeline contact has a Call Type.
- No flip-flopping values and cleaner run logs.
Create Opportunity when Call Type is Set
Makes sure every contact with a Call Type has a card on the matching board.
- Call Type is set on a contact: by hand, by the Unsorted Call Summary, or by a calendar booking.
- The workflow searches for a card in the matching pipeline only.
- Card found: nothing changes.
- No card: a card is created in New Lead with an owner (per the agreed ownership rule), source Call Type set, and the contact's name.
Build notes
- In Find opportunity, limit the search to the matching pipeline, any stage.
- Catch-up: smart list Call Type is Seller Call and no card in Seller pipeline, select all, bulk Add to workflow. Repeat for Recruit Call.
- No lead with a Call Type is missing from the board.
- Searching only the matching pipeline means a recruit who is also a seller still gets a seller card.
- Owner and source are filled from day one, so pipeline reports work.
- The board is the complete list of active leads.
- Every card has an owner and a source.
- Leads who slipped through before are caught in one pass (see build notes).
Unsorted Call Summary
Sorts new callers who have no Call Type yet, using what they actually said on the call.
- After any call, once the transcript exists, the workflow checks the contact's Call Type.
- Call Type already set: the workflow ends. The seller or recruit summary handles that call.
- Call Type empty: a voicemail check runs first. Voicemail = a note only, no summary.
- Real conversation: an AI summary is saved to a multi-line field. Its first line is a fixed label:
TYPE: SELLER,TYPE: RECRUITorTYPE: NEITHER. - SELLER sets Call Type = Seller Call. RECRUIT sets Call Type = Recruit Call. The Create Opportunity workflow then builds the card.
- NEITHER tags the contact
needs_reviewand notifies the broker.
Build notes
- Replace the two Call Details triggers with one Transcript Generated trigger, type Calls.
- Condition: Call Type is empty continues, otherwise End.
- Change the summary field from single-line to multi-line text.
- First-time callers get sorted automatically instead of waiting for someone to tag them.
- Uses the transcript trigger, so the summary never runs before the transcript is ready.
- Replaces a skip rule that could never be true (it required two Call Types at once).
- Unknown callers land on the right board within minutes of hanging up.
- One summary per call, no duplicates.
- Anything that can't be sorted goes to the broker instead of sitting unseen.
Lead Import
Places a spreadsheet of imported leads into the right pipeline stage, with no duplicate cards.
imp_sel_new_lead)- Before importing, every row gets a name (business name, or the phone number as a fallback) and one stage tag.
- After import, the contacts are bulk-added to the import workflow for their pipeline. There is one per pipeline, not one per stage.
- The workflow searches the pipeline for an existing card for that contact.
- It reads the stage tag to decide where the lead belongs.
- Card found: it moves to that stage. No card: a new card is created there, source Import.
- The import tag is removed so the same contact can't be processed twice.
Build notes
- If/Else branches cap at 10, so pipelines with more stages need two condition steps in a row.
- Archive the old per-stage import workflows in a folder named Archive - import tools.
- After merging any existing duplicates, turn off "Allow duplicate opportunities" in Settings.
- For future batches, the Opportunities import can set pipeline and stage straight from the spreadsheet, with no tags.
- Three workflows replace dozens of one-stage copies, so there is far less to maintain.
- Re-importing the same list never creates a second card.
- Nameless contacts and mis-selected tags are caught before they hide leads from the board.
- Every imported lead is on the board, in the right stage, within minutes.
- Zero duplicate cards from imports.
- A clean tag list with no leftover import tags.
Calls
What happens after every call: counting, summarising, moving the card and chasing missed calls.
Call Counter
Tracks effort and progress separately: every dial, and every real conversation.
- Every call, answered or not, adds 1 to Total Call Count (set to 1 if empty).
- Real conversations are counted separately: the Seller and Recruit Call Summary workflows add 1 to Call Count only when the call was a real conversation.
- One time at launch: both fields are recalculated for all contacts from call history.
Build notes
- Name the branches First call and Add 1 so the logs read clearly.
- Conversations (Call Count +1) are counted inside workflows 6 and 7, in their real conversation branch.
- Shows the difference between how hard a lead is being worked (dials) and how far they've moved (conversations).
- Re-entry ON fixes a counter that would otherwise never go past 1.
- On every contact: e.g. 8 dials, 2 conversations.
- Contact rate per lead and per pipeline, ready for reports and follow-up rules.
Seller Call Summary, Q&A + Cover Letter
After every seller call, writes the summary and makes sure every possible outcome triggers a next step.
- The AI step writes the call summary, Q&A and cover letter. The first line is always one fixed outcome label:
CONVERSATION,VOICEMAIL,AUTOMATED_MENU,RESCHEDULE,NOT_INTERESTEDorWRONG_NUMBER. - The workflow branches on that exact label, not on words found somewhere in the summary.
- Conversation: card moves to Spoke but nothing yet (only from early stages), Call Count +1, Missed Call Count reset to 0, then hand-off to Seller Needs Routing.
- Voicemail / automated menu: hand-off to the Missed Call Ladder.
- Reschedule: text with the seller booking link, plus a task for the broker: "Reschedule {{contact.name}}".
- Not interested: card marked Lost, reason "Not interested".
- Wrong number: tag
wrong_number, card marked Lost with reason "Wrong number", note added. - No label matched: the broker is notified: "Call outcome unclear, please review".
Build notes
- Change the voicemail check branches to match the exact first-line label.
- Review the text step in the conversation branch: who receives it and what it says.
- Every call ends with an action. No outcome falls through.
- Fixed labels make branching reliable; searching for words in free text is not.
- Lost reasons are recorded at the moment they happen.
- Zero seller calls without a next step.
- Lost reasons on every closed-lost card, so reports show why deals were lost.
- Voicemails feed the Missed Call Ladder automatically.
Recruit Call Summary, Email + Task
After every recruiting call: one note, one follow-up task, and the right summary email for where the recruit is.
- The AI step writes the summary with the same fixed first-line outcome label as the seller version.
- Conversation: note saved, card moves forward (early stages only), Call Count +1, Missed Call Count reset, and a task for the broker: "Follow up with {{contact.name}}", due in 2 days.
- The summary email is picked by Recruitment Call Status: First Call gets "#1 Call Summary + Attachment"; Second Call+ gets "#2 Call Summary".
- Voicemail: hand-off to the Missed Call Ladder.
- No label matched: the broker is asked to review.
- Recruitment Call Status changes to Second Call+ when the recruit's meeting is marked Showed (workflow 15), not here.
Build notes
- Copy the Note step from the old REC-WF-3-1 into the conversation branch, then switch 3-1 to Draft and move it to Archive.
- Confirm who receives the two summary emails (recruit, broker or manager) and check the attachment.
- One summary and one note per call. The old duplicate "Summary to Note" workflow is merged in and archived.
- Recruits get the email that fits their stage.
- A dated follow-up task means no recruit is forgotten after a good call.
- Every recruiting conversation ends with a note, a task and a tailored email.
- Recruit status reflects real meetings held, not guesses.
Call Answered Stage Guard
Moves a lead to "Spoke but nothing yet" after an answered call, without ever pulling an advanced deal backwards.
- When a call is answered, the workflow finds the lead's card.
- It moves the card to Spoke but nothing yet only if the card is still in an early stage: New Lead, or Left 1st to 5th message.
- Cards further along (for example Future Appointment) are left alone.
- Week 1: this stage move is copied into the real conversation branch of workflows 6 and 7, and this workflow is switched off, so a voicemail can never count as "spoke".
Build notes
- Add the stage condition right after Find opportunity, Found branch.
- Stops follow-up calls from dragging booked or advanced deals back to an early stage.
- A safe quick fix that holds the line until the summary workflows take over.
- Pipeline stages stay accurate.
- Booked deals stay in Future Appointment until the meeting outcome moves them.
Missed Call Ladder
Counts missed attempts with a number and walks the card down a 5-step ladder, then hands it to the broker.
- Adds 1 to Missed Call Count (one number field per pipeline; set to 1 if empty).
- Finds the lead's card in the pipeline, or creates one in New Lead if missing.
- Moves the card by count: 1 to Left 1st message, 2 to Left 2nd, 3 to Left 3rd, 4 to Left 4th.
- 5 or more: card moves to Back Burner and the broker is notified to decide the next step.
- Optional text to the lead: "Sorry I missed you, I'll try again."
- Any real conversation resets Missed Call Count to 0 (done in workflows 6 and 7).
Build notes
- Create number fields Missed Call Count SEL and Missed Call Count REC.
- Delete the old Call Details trigger and the unused
missedcall_1stto5thtags.
- One number replaces five separate tags, so the logic is simple and easy to audit.
- Starting from the voicemail detection means only real misses count.
- The board shows at a glance how many attempts each lead has had.
- No lead goes cold silently: after 5 misses a person decides.
- Consistent follow-up across every lead, with no manual tracking.
Seller needs
Turning what a seller said on the call into one card, one task and one alert.
Seller Needs Routing
Turns what a seller needs into one card, one stage, one task and one alert. Replaces three overlapping workflows.
- Finds the seller's card in the Seller Needs pipeline, any stage.
- Checks the Seller Call Needs field in priority order: Wants to Sell, then Needs Financing, then Needs Consulting, then empty. The first match wins.
- Card found: it moves to the matching stage. No card: one is created there. One card per seller.
- Swaps the stage tag (
sn_<stage>) and removes the others. - Creates the broker's task, due in 3 days: Book valuation call / Send financing options / Book consulting call / Qualify seller.
- Sends one notification: "{{contact.name}} needs: {{contact.seller_call_needs}}".
Build notes
- Repoint the Seller Call Summary's Add to Workflow step to this workflow, then switch the three old routing workflows and any leftover copy to Draft and Archive.
- Merge any sellers who already have two Seller Needs cards.
- One card per seller instead of a new card for every need.
- The highest-value need (a seller who wants to sell) always wins.
- One combined alert instead of three separate ones.
- Every seller has a clear next action with a due date.
- The Seller Needs board matches what sellers actually said.
- No duplicate seller cards.
Seller Needs Sync on Manual Stage Move
When the broker drags a Seller Needs card by hand, the needs field and tag follow.
- The broker moves a Seller Needs card to a new stage by hand.
- The workflow sets Seller Call Needs to match the new stage.
- It swaps the
sn_stage tag to match. - Branches are ordered most specific first (combined needs above single needs), so the right one is picked.
Build notes
- Name it clearly: "SN-WF-3-2 Sync needs field on manual stage move".
- The field and the board never disagree, whether the change came from a call or from the broker.
- Covers every stage, not just one.
- Routing, reports and smart lists all use accurate needs data.
Appointments
From booking to outcome, so no meeting is forgotten and no no-show is left alone.
Booked from Calendar
Puts every booked meeting on the board in Future Appointment, however it was booked.
- A meeting is booked any way: the lead uses the booking link, or the team books it from the calendar page.
- The calendar decides the pipeline: Seller calendar sets Call Type = Seller Call; Recruiting calendar sets Recruit Call.
- The workflow searches that pipeline for the lead's card.
- Found: the card moves to Future Appointment. Not found: a card is created there, owner = broker, source Calendar booking.
- An "Appointment Booked" note is added. Re-entry is on, so second meetings work too.
Build notes
- If a calendar does not auto-confirm, include status New in the trigger.
- Match calendar settings: auto-confirm and Google invites on, 15 min buffer, 4 hour minimum notice, 30 day booking window.
- Catches bookings the team makes by hand, which a "customer booked" trigger misses.
- Uses the calendar, not a Call Type check, so brand-new leads aren't blocked.
- No duplicate cards for repeat bookings.
- Every booked meeting shows on the board within a minute.
- Future Appointment is a reliable list of upcoming meetings.
Appointment Confirmations and Reminders
Confirms every meeting straight away and reminds the lead before it starts.
- Right after booking: confirmation by text and email with date, time, video link and reschedule link.
- 24 hours before: reminder by text and email.
- 1 hour before: reminder by text.
- Rescheduled: the lead re-enters and gets a fresh confirmation. Old reminders are replaced, not doubled.
- Cancelled: the Appointment Outcome workflow removes the lead from this one.
Build notes
- Set these messages in one place only: this workflow or each calendar's Notifications tab, never both.
- Reuse and rename any existing reminder email template so names stay clear.
- Leads always know when the meeting is and how to join.
- An easy reschedule link turns "can't make it" into a new time instead of a no-show.
- Fewer no-shows and more reschedules instead of losses. The show rate on the dashboard tracks the change.
- A consistent, professional first impression on every booking.
Appointment Outcome Reminder
Makes sure every meeting gets marked Showed, No-show or Cancelled, because everything after depends on it.
- Waits until the meeting's end time, plus 1 hour.
- Outcome already marked: the workflow ends quietly.
- Still unmarked: a task for the broker, "Mark outcome: {{contact.name}}, {{appointment.start_time}}", due today, plus an internal text.
- Waits until 8:00 the next morning. Still unmarked: a second notification.
Build notes
- Test with a short meeting so the wait is short.
- The Appointment Outcome workflow only fires when a meeting is marked. This makes sure that happens.
- A nudge only when needed. No noise for meetings already handled.
- Every meeting is marked within a day.
- No-show follow-ups start on time.
- Show-rate reports are accurate.
Appointment Outcome
Gives every meeting outcome real actions, per calendar, so cards leave Future Appointment and no-shows get rebooked.
- Branches by outcome and calendar: Seller · Showed, Recruiting · Showed, and so on (six branches).
- Showed: card moves to the agreed post-meeting stage, tag
appt_showed, thank-you email with the next step, task "Follow up after meeting" due in 2 days. Recruiting also sets Recruitment Call Status = Second Call+. - No-show: text and email with the reschedule link, tag
no_show, stage Spoke but nothing yet, broker notified. After 1 day with no new booking, a second reschedule message. - Cancelled: reschedule message, card moves out of Future Appointment, lead removed from the reminders workflow, note added.
- No match: broker notified "Unmatched appointment outcome", so nothing disappears silently.
Build notes
- Each branch has two checks joined by AND: appointment status, and calendar. If the condition list has no Calendar field, use six calendar-filtered triggers and branch on the trigger name instead.
- Agree the post-meeting stage with the broker before go-live.
- Every outcome does something. Before, cards stayed in Future Appointment forever.
- No-shows get two automatic chances to rebook.
- Separating by calendar keeps seller and recruit follow-ups apart.
- Future Appointment only holds meetings that haven't happened yet.
- More rebooked no-shows, with no manual chasing.
- A follow-up task after every meeting held.
Order of work
Ordered so the fixes that unblock the most leads come first. Each phase starts after sign-off on the one before.
Quick fixes
- Reply to every waiting conversation in the inbox.
- Fix Booked from Calendar, Unsorted Call Summary, the Call Answered stage guard and Set Call Type (workflows 1, 2, 3, 8, 12).
- Fix import tags and give nameless contacts a name so hidden leads reach the board.
- Set the business website and timezone, and clean up custom values.
- Align both calendars: auto-confirm, invites, buffer, minimum notice, booking window.
Get leads moving
- Build the Outcome Reminder and Confirmations workflows; rebuild Appointment Outcome (workflows 13 to 15).
- Rebuild the Missed Call Ladder and Seller Needs Routing (workflows 9 and 10).
- Upgrade both call summaries with outcome labels and actions on every outcome (workflows 6 and 7).
- Move the Call Answered stage change into the summaries and retire it.
Clean records
- Mark all past appointments. Create cards for contacts who never got one.
- Merge duplicate cards, then turn off "Allow duplicate opportunities".
- Agree an ownership rule and assign every unowned card.
- Recalculate call counts from history (workflow 5). Retire unused tags and fields after checking nothing uses them.
- Consolidate import workflows (workflow 4). Remove test contacts and unused forms.
Make it measurable
- Text and email template library for the 5-step follow-up, clearly named.
- Lost reasons and deal values on cards, so pipeline reports show real numbers.
- A dashboard: new leads, calls answered, booked, showed, signed.
- Confirm A2P 10DLC registration, the email sending domain and missed-call text-back.
- Re-run the full review to confirm every fix landed.
- Never delete a workflow on day one: switch it to Draft and move it to an Archive folder, then delete after a clean month.
- Before archiving, check no Add to Workflow step anywhere still points at it.
- Retire a tag or field only after confirming no workflow, smart list or form uses it.
- Build and test in a sandbox sub-account first, then repeat in the live account and switch everything on together.