The Broker Times · Shop product
Import the watch for your CRM, import the outreach middle, test on yourself. Default: email the broker, not the client.
About twenty-five minutes for a native CRM. Longer if you are wiring HTTP for an API CRM. Zapier users: stop here and open ZAPIER-Setup-Guide.md. Zapier cannot import these files.
Australian English. Existing clients only. Default: the engine emails you, not the client.
Two Make scenarios running on a weekday morning:
Only the first and last steps touch the CRM. Do not rebuild the middle for each system.
05-templates/CRM-Field-Map.csv. At minimum you need a fixed-expiry date and the three stamp fields (tbt_fixed_expiry_state, tbt_last_fixed_expiry_touch, tbt_last_window_sent).CRM-SCENARIOS.md.If the fields are missing, the imported modules show as invalid. Create them first.
| Your CRM | File | Connection type |
|---|---|---|
| HubSpot | 02-make-blueprints/01-TBT-Fixed-Expiry-Watch-HubSpot.blueprint.json | Native sign-in |
| Salesforce | 01b-TBT-Fixed-Expiry-Watch-Salesforce.blueprint.json | Native sign-in |
| Pipedrive | 01c-TBT-Fixed-Expiry-Watch-Pipedrive.blueprint.json | Native sign-in |
| Zoho CRM | 01d-TBT-Fixed-Expiry-Watch-Zoho.blueprint.json | Native sign-in |
| ActivePipe | 01e-TBT-Fixed-Expiry-Watch-GoogleSheets-Bridge.blueprint.json | Sheet export |
| BrokerEngine | 01e (same file) | Sheet export |
| AFG Suite360 | 01e (same file) | Sheet export |
| Salestrekker | No watch file. HTTP + 02-notes.md, or 01e until the aggregator grants access. | API |
| Connective | Same as Salestrekker | API |
| LMG MyCRM | Same as Salestrekker | API |
| Effi | Same as Salestrekker | API |
| Finsure Infynity | Same as Salestrekker | API |
Everyone also imports 02-TBT-Fixed-Expiry-Outreach.blueprint.json.
You need its webhook URL before the watch can post.
02-TBT-Fixed-Expiry-Outreach.blueprint.json.https://hook.make.com/....auto_email_client alone. The watch sends false. Module 6 will not run.Save. Do not turn it on yet.
gpt-4o-mini. Leave it unless you have a reason to change it.[YOUR FIRST NAME], [YOUR BUSINESS NAME] and [YOUR BROKER EMAIL] later, in the watch payload. The outreach scenario reads them from the webhook.- HubSpot: pick the portal that holds settled clients. Create the four properties before this sign-in if you have not. - Salesforce: pick the org. Confirm the SOQL object is the one that has the expiry date (Contact by default). If the date lives on a Loan object, change the SOQL. Create the __c fields first. - Pipedrive: pick the company. Open Settings → Data fields, copy the hash for each custom field, and replace every YOUR_*_HASH in module 1 and module 2. - Zoho CRM: pick the org. Module is Contacts. Change it if you store the expiry on Deals or a custom module.
https://hook.make.com/YOUR_OUTREACH_WEBHOOK.- [YOUR BROKER EMAIL] - [YOUR FIRST NAME] - [YOUR BUSINESS NAME]
"auto_email_client": "false".HubSpot note: the watch filter requires lifecyclestage = customer. If your settled clients use another stage, change that one condition.
Salesforce note: the watch filter expects tbt_existing_client__c not false. If you filter by Account type instead, change the SOQL and the filter.
05-templates/Google-Sheet-Bridge-template.csv. Name the tab Fixed expiry.existing_client must be TRUE. source_crm is ActivePipe or BrokerEngine or AFG Suite360.01e-TBT-Fixed-Expiry-Watch-GoogleSheets-Bridge.blueprint.json.Fixed expiry.[YOUR ...] placeholders if the sheet row does not already have broker_email.Re-export the sheet when dates change. The stamp writes back to the sheet only after you swap module 9 for Google Sheets Update a Row. Until you do that, stamp by hand after a test run so you are not hit twice.
- Module 1: HTTP Make a request, using the URL and token they gave you, filtered to existing clients with an expiry in the next 95 days. - Module 2: HTTP POST the canonical payload in 02-make-blueprints/02-notes.md to the outreach webhook.
05-templates/CRM-Field-Map.csv. Confirm names with the aggregator. The names in the map are labels, not a promise the vendor uses them verbatim.auto_email_client as false.Blueprint 02 ends with three HTTP modules pointed at dummy SWAP_FOR_YOUR_CRM_* URLs. They are labelled on the canvas. Replace them. Do not leave them as HTTP calls to hook.make.com/SWAP_....
| Module | Job | Native swap | Sheet swap | API swap |
|---|---|---|---|---|
| 7 | Create a broker task | HubSpot / Salesforce / Pipedrive / Zoho "Create a Task" (or Activity) | Skip, or add a row in a Tasks tab | HTTP POST a task, see 02-notes.md |
| 8 | Write a CRM note | Native "Create a Note" (HubSpot: POST /crm/v3/objects/notes) | Google Sheets Update a Row, write crm_note into a Notes column | HTTP POST a note |
| 9 | Stamp the window | Native Update the contact | Update the same row: tbt_fixed_expiry_state, tbt_last_fixed_expiry_touch, tbt_last_window_sent | HTTP PATCH the stamp fields |
Stamp body (every CRM):
tbt_fixed_expiry_state = touched_{{3.window}}
tbt_last_fixed_expiry_touch = today
tbt_last_window_sent = {{3.window}}
If you skip the stamp, the same person is drafted every morning. That is the one module you cannot "do later".
Do not raise the limit in week one.
opt_out. Run once. Nothing should draft.If step 5 drafts you again, the stamp is not writing. Fix that before anyone else is in the set.
Read the draft out loud. If it quotes a rate, invents a saving, or says they will be cheaper on variable, do not send it. Check the prompt has not been edited. See 04-compliance/02-What-the-AI-Must-Never-Say.md.
When, and only when, the loop above is clean:
"auto_email_client": "false" to "auto_email_client": "true".There is no reply-triage blueprint in this pack. If you cannot honour an opt-out the same day, leave the switch off.
Search both scenarios for:
[YOUR FIRST NAME][YOUR BUSINESS NAME][YOUR BROKER EMAIL]YOUR_OUTREACH_WEBHOOKYOUR_*_HASH (Pipedrive)SWAP_FOR_YOUR_CRM_* (must be gone after step 4)On outreach module 2. Three bands (90 / 60 / 30). Every condition inside a band must pass:
email_optout is not trueexisting_client is truetbt_fixed_expiry_state is not opt_outtbt_last_window_sent is not already that windowThe same gate runs for Salesforce, HubSpot, Pipedrive, Zoho CRM, the five API CRMs, and the three sheet CRMs. That is intentional.
Almost always a missing field or a missing connection.
__c fields, or point SOQL at the field you already have.outputProperties list without a reason.