Lead handoff to Follow Up Boss
Every form and save on the website becomes a Follow Up Boss event, with the person, the house and the campaign attached. This page is the spec the WordPress build follows.
Every site form shows the exact event it would send, and sends nothing. Field names follow Follow Up Boss's Events API as documented in October 2026.
How a lead travels
The API key never reaches the browser.
- The visitor submits a formThe site checks it first: a first name, and an email or a phone number. Follow Up Boss matches people by email or phone, so one of them is required.
- The browser posts to the team's own serverA WordPress REST endpoint on the team's hosting (for example
/wp-json/oberdorfer/v1/lead) receives the form, never the Follow Up Boss key. - The server sends the event
POST https://api.followupboss.com/v1/eventswith HTTP Basic auth (the API key as the username, blank password) and theX-SystemandX-System-Keyheaders the site receives when it is registered as a system. - Follow Up Boss files itIt finds the person by email or phone or creates them, attaches the event, and runs the lead flow for the source: assignment, notifications and action plans.
- The server records the answer
201means a new person,200an existing one updated,204that the source's lead flow is archived and ignored. Failed requests are queued and retried; the visitor sees their confirmation either way.
Event map
Follow Up Boss starts action plans only for new leads of Registration, Seller Inquiry, Property Inquiry, General Inquiry and Visited Open House; automations only for Registration, Property Inquiry, Seller Inquiry and General Inquiry.
| Site action | Where | Event type | Action plan | Carries |
|---|---|---|---|---|
| Request a showing | Every listing | Property Inquiry | Yes | property; person.assignedTo on the team's own listings |
| Ask what it's worth | Home, Selling, town pages | Seller Inquiry | Yes | property from the address |
| Talk with us: selling | Home, Team | Seller Inquiry | Yes | message, tags |
| Talk with us: buying, both, reading, joining | Home, Team | General Inquiry | Yes | message, tags |
| Talk with an agent | Agent pages | General Inquiry or Seller Inquiry | Yes | person.assignedTo, message |
| Open-house sign-in | Open houses | Visited Open House | Yes | property, agent status |
| Keep me posted | Saved homes | Registration, then Saved Property for each home | Registration only | property per home |
| Save this search | Homes for sale | Saved Property Search | No | propertySearch |
| Views a listing, once known | Live site only | Viewed Property | No | property |
| Runs a search, once known | Live site only | Property Search | No | propertySearch |
Saving a home on the site stays in the visitor's browser until they register: Follow Up Boss needs a person to attach a Saved Property event to. If the IDX vendor already sends Viewed Property and Property Search events to Follow Up Boss, the site doesn't send them a second time.
Field map
What each form field becomes in the event body.
| On the site | In Follow Up Boss |
|---|---|
| First name, last name | person.firstName, person.lastName |
person.emails[0].value, type home | |
| Phone | person.phones[0].value, type mobile |
| Call/text consent box | Tag Call/text consent, plus a timestamped line in description quoting the exact wording shown |
| Message | message |
| Timing, agent status, also selling | Lines in description, with the form name and page |
| The listing | property.street, city, state, code, mlsNumber, price, forRent, url, type, bedrooms, bathrooms, area, lot |
| Search filters | propertySearch.city, state, type, maxPrice, minBedrooms |
| UTM parameters | campaign.source, medium, term, content, campaign, sent only when utm_source is present, because Follow Up Boss requires campaign.source whenever campaign is sent |
| The page | pageUrl, pageTitle, pageReferrer |
| When | occurredAt. Events more than a day old count as history and start no workflows. |
| Agent page or listing agent | person.assignedTo: the agent's full name as it appears in Follow Up Boss, so the lead lands with them. Forms with no agent leave it out and the lead flow assigns. |
| Brokerage of record | person.customBrokerage (a custom field created in Follow Up Boss first) |
| Interest and context | Tags: Website, Buyer, Seller, the town, Open house, Saved search, Saved homes, Nurture, Agent recruit |
| The site itself | source = the site's domain without "www" ([team website domain] until it's chosen); system = OberdorferTeamSite |
One request, in full
A showing request for the sample listing at 14 Orchard Lane, arriving from a Facebook ad. The person is fictional; 555-01xx numbers are reserved for examples.
POST https://api.followupboss.com/v1/events
Authorization: Basic [API key, server-side only]
X-System: OberdorferTeamSite
X-System-Key: [issued when the site is registered]
Content-Type: application/json
{
"source": "[team website domain]",
"system": "OberdorferTeamSite",
"type": "Property Inquiry",
"message": "Can we see the attic and the basement at the open house?",
"description": "Form: Request a showing on /homes/holden-14-orchard-lane\nTiming: The open house, Sun Oct 18, 11–1\nCall/text consent: yes, 2026-10-08T14:22:05Z. Text shown: \"You can call or text me about this request. Message and data rates may apply; reply STOP to opt out.\"\nBrokerage of record: REWAP Brokerage LLC. Team: The Oberdorfer Team.",
"person": {
"firstName": "Sam",
"lastName": "Rivera",
"emails": [
{
"value": "sam@example.com",
"type": "home"
}
],
"phones": [
{
"value": "508-555-0142",
"type": "mobile"
}
],
"tags": [
"Website",
"Holden",
"Call/text consent"
],
"assignedTo": "Brandon Oberdorfer",
"customBrokerage": "REWAP Brokerage LLC"
},
"campaign": {
"source": "facebook",
"medium": "paid_social",
"campaign": "fall-open-houses"
},
"pageTitle": "14 Orchard Lane, Holden: sample listing · The Oberdorfer Team",
"pageUrl": "https://[team website domain]/homes/holden-14-orchard-lane",
"occurredAt": "2026-10-08T14:22:05Z",
"property": {
"street": "14 Orchard Lane",
"city": "Holden",
"state": "MA",
"code": "01520",
"mlsNumber": "[MLS PIN number]",
"price": 689000,
"forRent": false,
"url": "https://[team website domain]/homes/holden-14-orchard-lane",
"type": "Single family",
"bedrooms": 4,
"bathrooms": 2.5,
"area": 2140,
"lot": 0.52
}
}
Set up in Follow Up Boss
What the team, REWAP and the developer each settle before launch.
- Register the site as a system. Follow Up Boss asks anyone sending data for a customer to register; registration issues the
X-System-Keythat goes withX-System: OberdorferTeamSite. - Create the API key. From Admin → API in the account that should own website leads. It has that user's full privileges, so it lives only in the server's environment settings.
- Choose the source name. The site's domain without "www". A lead flow rule for that source decides assignment (Brandon, Kait, or a rotation) and which action plan starts.
- Write the action plans. At least one each for Property Inquiry, Seller Inquiry and Visited Open House, in the brand book's voice.
- Add every agent as a user with the same full name the website uses, so
person.assignedTomatches. A new agent is added here when their page is added to the site. - Create the custom field "Brokerage" (
customBrokerage), and agree the tag list above so smart lists and reports can use it. - Confirm the consent wording with REWAP's principal broker, and finish A2P 10DLC registration before relying on text follow-up; US business texting goes through it.
- Retire the old routing. If the BoldTrail/kvCORE site or a lead service also sends to Follow Up Boss, give each its own source so nothing arrives twice under one name.
- Test end to end with a test contact: expect
201the first time and200the second, then check that the lead flow, tags and action plan ran.