Follow Up Boss (CRM)
With an API key configured, Matilda keeps the matching person in Follow Up Boss up to date as she learns about a lead.
For a guided setup see the Sync with Follow Up Boss tutorial.
Two ways to connect
Per realtor (recommended). Each dashboard user links their own Follow Up Boss login: click Connect in the Matilda Worker, or Connect Follow Up Boss on the dashboard profile page. Leads that user's Mac picks up are created and enriched under their Follow Up Boss login. Any role can do this. It needs an OAuth client registered with Follow Up Boss; an owner pastes its client id and secret into the Follow Up Boss panel on Setup (no restart).
Org-wide API key. An owner pastes the account API key on Setup. It is used for every path that has no signed-in user behind it (web chat and BlueBubbles captures) and as the fallback for a realtor who has not connected their own login.
If a realtor's connection expires, the worker shows Reconnect and syncing falls back to the org key until they do.
Settings
| Setting | Env var | Notes |
|---|---|---|
| API key | FOLLOWUPBOSS_API_KEY | From Follow Up Boss, Admin, then API. Unset is a silent no-op. |
| System name | FOLLOWUPBOSS_SYSTEM | Optional. Identifies Matilda as a registered integration via the X-System header. |
| System key | FOLLOWUPBOSS_SYSTEM_KEY | Optional companion to the system name |
| OAuth client id | FOLLOWUPBOSS_OAUTH_CLIENT_ID | Enables per-realtor connections. Setup page or env. |
| OAuth client secret | FOLLOWUPBOSS_OAUTH_CLIENT_SECRET | Shown once when the OAuth app is created. Setup page (owner) or env. |
| Stage map | FOLLOWUPBOSS_STAGE_MAP | JSON from Matilda status to stage name. See below. |
| Local timezone | MATILDA_LOCAL_TZ | IANA name used for appointment times when the lead's own timezone is unknown |
What Matilda writes
Tags. Matilda on every synced person, Matilda Qualified once qualified, and an intent tag of Buyer, Seller, or Browsing.
Standard fields. Budget goes on the person's price field.
Field mapping
Custom fields are created once with python scripts/fub_provision_fields.py.
| Matilda field | Follow Up Boss custom field |
|---|---|
timeline | customTimeline |
preapproval | customPreApproval |
property_interest | customPropertyInterest |
intent | customIntent |
areas | customBuyerAreas |
timezone | customTimezone |
Stages
The default map is:
{"qualified": "Hot Prospect", "showing": "Active Client", "nurture": "Nurture"}
Stage names must match yours exactly. Use the Setup Test button to list them. Matilda only advances a stage forward, skips unmatched names, and an empty object disables staging.
From a worker sync, the new stage is a Move to suggestion in the Matilda Worker, and the lead moves only when you apply it. Workers too old to show suggestions still move the stage on their own.
When syncs happen
| Path | Creates people | Enriches | Pushes notes, tasks, appointments |
|---|---|---|---|
| Worker ingest | Yes, on first pickup | Yes | When you apply a suggestion (older workers: yes) |
| Agent capture | No | Yes, existing person only | No |
| Agent reply | No | No | No |
| Dashboard Sync now | No | Yes | No |
Pushed activity, including an applied suggestion, is recorded in the crm_items table with a content hash so nothing is sent twice.
Test
The Setup Test button authenticates and lists your stage names.