Follow Up Boss integration
Follow Up Boss is a real estate CRM. Send in leads and lead activity (registrations, inquiries, property views), search and update contacts, relationships, notes, tasks, appointments, logged calls, deals and pipelines, read text messages, and manage stages, custom fields, groups, ponds, teams, users, Smart Lists, email and text templates, Action Plans and email marketing campaigns and events. Contact postal addresses and pictures, event property street addresses, lead-provider links, call recordings and message media are not returned (addresses can be set on create_person and create_person_relationship, not on updates). Webhooks, attachments, recording text messages, Automations 2.0, Inbox Apps and rate-limit reports need a registered system and are not exposed, nor is the current-user route (it returns the API key). Access follows the key owner's role (owner, admin, agent, lender); global limit 125 requests per 10 seconds for an unregistered system. Authentication: HTTP Basic with the API key (Admin, API in Follow Up Boss) as username and any non-empty password. The FUB API terms forbid using FUB data to train or develop AI or ML models.
Say what should happen.
The workflow builds itself.
What you can do with Follow Up Boss
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Person, 9 operations
check_duplicate_personCheck duplicate personGETTells whether a contact with this email or phone already exists, even one the key cannot see, and which agent it is assigned to.claim_personClaim personPOSTClaims a lead offered through First To Claim for the connected user. Returns the person; HTTP 409 if someone else claimed it first.create_personCreate personPOSTAdds a contact manually without running any automation. To send in a new lead use create_event instead (dedupe, agent alert, Action Plans).delete_personDelete personDELETEDeletes a contact by its id from list_people.get_personGet personGETReturns one contact by id: name, stage, source, assignee, collaborators, tags, emails, phones, price and timeframe.ignore_unclaimed_personIgnore unclaimed personPOSTRecords that the connected user declined a First To Claim offer. It only logs the choice; the lead stays in list_unclaimed_people.list_peopleList peopleGETSearches contacts by name, email, phone, stage, source, tags, assignee, price, activity dates or smart list. Trash-stage contacts are left out unless includeTrash=true.list_unclaimed_peopleList unclaimed peopleGETLists First To Claim leads the connected user can still claim (they fall back to an agent after a short time, 15 minutes by default, so it is usually empty).update_personUpdate personPUTUpdates a contact; send only the fields to change. tags and phones REPLACE the current lists (mergeTags=true adds tags instead). contacted=true pauses Action Plans.
Group, 6 operations
create_groupCreate groupPOSTCreates a lead-distribution group with a name and member user ids; distribution round-robin (default) or first-to-claim. Admins only.delete_groupDelete groupDELETEDeletes a lead-distribution group by its id from list_groups. Admins only.get_groupGet groupGETReturns one lead-distribution group by id: distribution, claim window, defaults and member users.list_groupsList groupsGETLists lead-distribution groups (Agent or Lender) with their distribution model, claim window, defaults and member users. Not available to lender users.list_round_robin_groupsList round robin groupsGETLists groups with their round-robin data, including the next user due to receive a lead. Not available to lender users.update_groupUpdate groupPUTUpdates a group. name and users are required on every call: read the group first and send them back with the change. Admins only.
Template, 6 operations
create_templateCreate templatePOSTCreates an email template with name, subject and body; subject and body accept merge fields such as %contact_name%.delete_templateDelete templateDELETEDeletes an email template; a template still used by an Action Plan is refused with 403 (see get_template).get_templateGet templateGETReturns one email template; with mergePersonId its merge fields are filled for that contact.list_templatesList templatesGETLists email templates with name, subject, body (with %merge_fields%), sharing flags and the Action Plans using each.merge_templateMerge templatePOSTReturns an email template with its merge fields filled for a contact and the To: recipients you pass. Read-only: nothing is sent.update_templateUpdate templatePUTUpdates an email template. name, subject and body are required on every call: read the template first and send them back with the change.
Text message template, 6 operations
create_text_message_templateCreate text message templatePOSTCreates a text message template with a name and message; the message accepts merge fields such as %contact_name%.delete_text_message_templateDelete text message templateDELETEDeletes a text message template; one still used by an Action Plan is refused with 403.get_text_message_templateGet text message templateGETReturns one text message template by id with its message, statistics and Action Plans using it.list_text_message_templatesList text message templatesGETLists text message templates with message (with %merge_fields%), sharing flags, send and reply statistics.merge_text_message_templateMerge text message templatePOSTReturns a text message template with its merge fields filled for a contact and the recipients you pass. Read-only: nothing is sent.update_text_message_templateUpdate text message templatePUTUpdates a text message template. name and message are required on every call: read the template first and send them back with the change.
Appointment, 5 operations
create_appointmentCreate appointmentPOSTCreates an appointment with title, start and end; invitees can be users and people. With sendInvitation=true invitees are emailed (and texted if reminders are on).delete_appointmentDelete appointmentDELETEDeletes an appointment by its id from list_appointments.get_appointmentGet appointmentGETReturns one appointment by id: title, times, location, invitees, type and outcome.list_appointmentsList appointmentsGETLists appointments created in Follow Up Boss by the connected user (calendar-synced ones are not returned), filtered by person, user or a start/end window.update_appointmentUpdate appointmentPUTUpdates an appointment. title, start and end are required on every call: read the appointment first and send them back. sendInvitation=true emails the invitees.
Appointment outcome, 5 operations
create_appointment_outcomeCreate appointment outcomePOSTCreates an appointment outcome (a result label such as a showing that led to an offer) with a name and optional orderWeight. Account owner only.delete_appointment_outcomeDelete appointment outcomeDELETEDeletes an appointment outcome; appointments that used it are moved to the outcome given in assignOutcomeId. Account owner only.get_appointment_outcomeGet appointment outcomeGETReturns one appointment outcome (id, name, orderWeight) by its id from list_appointment_outcomes.list_appointment_outcomesList appointment outcomesGETLists the appointment outcomes defined in the account (id, name, orderWeight); use an id as outcomeId on create_appointment or update_appointment.update_appointment_outcomeUpdate appointment outcomePUTRenames or reorders an appointment outcome; send only the fields to change. Account owner only.
Appointment type, 5 operations
create_appointment_typeCreate appointment typePOSTCreates an appointment type (the kind of appointment, such as a listing presentation) with a name and optional orderWeight. Account owner only.delete_appointment_typeDelete appointment typeDELETEDeletes an appointment type; appointments that used it are moved to the type given in assignTypeId. Account owner only.get_appointment_typeGet appointment typeGETReturns one appointment type (id, name, orderWeight) by its id from list_appointment_types.list_appointment_typesList appointment typesGETLists the appointment types defined in the account (id, name, orderWeight); use an id as typeId on create_appointment or update_appointment.update_appointment_typeUpdate appointment typePUTRenames or reorders an appointment type; send only the fields to change. Account owner only.
Custom field, 5 operations
create_custom_fieldCreate custom fieldPOSTCreates a person custom field with a label and a type (text, date, number or dropdown with choices). Account owner only.delete_custom_fieldDelete custom fieldDELETEDeletes a person custom field by its id from list_custom_fields. Account owner only.get_custom_fieldGet custom fieldGETReturns one person custom field by id: label, name, type and choices.list_custom_fieldsList custom fieldsGETLists the person custom fields: label (shown in the app), name (the key used in people data, e.g. customClosePrice), type and dropdown choices.update_custom_fieldUpdate custom fieldPUTUpdates a person custom field (label, choices, flags); its type cannot change. Send only the fields to change. Account owner only.
Deal, 5 operations
create_dealCreate dealPOSTCreates a deal in a pipeline stage (stageId from list_pipelines). An empty userIds hides the deal from agents (admins and owners still see it).delete_dealDelete dealDELETEDeletes a deal by its id from list_deals.get_dealGet dealGETReturns one deal by id: pipeline and stage, status, price, dates, description, people and users.list_dealsList dealsGETLists deals (transactions in a pipeline) filtered by pipeline, user, person or status, with stage, price, dates, people and users.update_dealUpdate dealPUTUpdates a deal: move it to another stage, change price, dates, people or users. Send only the fields to change. An empty userIds hides the deal from agents.
Deal custom field, 5 operations
create_deal_custom_fieldCreate deal custom fieldPOSTCreates a deal custom field with a label and a type (text, date, number or dropdown with choices). Account owner only.delete_deal_custom_fieldDelete deal custom fieldDELETEDeletes a deal custom field by its id from list_deal_custom_fields. Account owner only.get_deal_custom_fieldGet deal custom fieldGETReturns one deal custom field by id: label, name, type, choices and display flags.list_deal_custom_fieldsList deal custom fieldsGETLists the deal custom fields: label, name (the key used in deal data), type, choices, orderWeight, hideIfEmpty and readOnly.update_deal_custom_fieldUpdate deal custom fieldPUTUpdates a deal custom field. label and type are required on every call: read the field first and send them back with the change. Account owner only.
Pipeline, 5 operations
create_pipelineCreate pipelinePOSTCreates a deal pipeline with a name and its stages (each needs name and closedStage). Account owner only.delete_pipelineDelete pipelineDELETEDeletes a deal pipeline by its id from list_pipelines.get_pipelineGet pipelineGETReturns one deal pipeline by id with its stages.list_pipelinesList pipelinesGETLists deal pipelines with their stages (id, name, order); use a stage id as stageId on create_deal. Filter by name.update_pipelineUpdate pipelinePUTUpdates a pipeline; send only the fields to change. In stages, an object without id is created as a NEW stage: include the id to edit one. Account owner only.
Pond, 5 operations
create_pondCreate pondPOSTCreates a lead pond with a name, a Pond Lead Agent (userId) and member user ids.delete_pondDelete pondDELETEDeletes a lead pond; contacts still in it are reassigned to the user given in assignTo.get_pondGet pondGETReturns one lead pond by id: name, Pond Lead Agent and member user ids.list_pondsList pondsGETLists lead ponds (shared lead pools) with the Pond Lead Agent (userId) and member user ids.update_pondUpdate pondPUTUpdates a pond; send only the fields to change. userIds replaces the member list: read the pond first, edit the list and send it whole.
Stage, 5 operations
create_stageCreate stagePOSTCreates a contact stage with a name and optional orderWeight.delete_stageDelete stageDELETEDeletes a contact stage; assignStageId names the stage put in its place where Action Plans reference it. Protected stages (isProtected) cannot be deleted.get_stageGet stageGETReturns one contact stage by id: name, order, protection flag and people count.list_stagesList stagesGETLists contact stages (such as Lead or Past Client) with order, protection flag and number of people in each.update_stageUpdate stagePUTRenames or reorders a contact stage; protected stages cannot be renamed. Send only the fields to change.
Task, 5 operations
create_taskCreate taskPOSTCreates a task on a person (personId required): name, type, assignee and due date or date-time, with an optional reminder.delete_taskDelete taskDELETEDeletes a task by its id from list_tasks.get_taskGet taskGETReturns one task by id: name, type, assignee, completion, due date and person.list_tasksList tasksGETLists tasks, filtered by person, assignee, name, type, completion or due date range.update_taskUpdate taskPUTUpdates a task (name, type, assignee, completion); send only the fields to change.
Team, 5 operations
create_teamCreate teamPOSTCreates a team with a name, member user ids and optional leader user ids.delete_teamDelete teamDELETEDeletes a team; with moveToTeamId its members join that team.get_teamGet teamGETReturns one team by id with its member and leader user ids.list_teamsList teamsGETLists teams with member and leader user ids. Team 1 is the default company team with every user; plans without teams get an empty list.update_teamUpdate teamPUTUpdates a team; send only the fields to change. When sending userIds or leaderIds send the complete list: read the team first, edit the list and send it whole.
Action plan, 4 operations
apply_action_planApply action planPOSTStarts an Action Plan on a person for real: its scheduled emails, texts and tasks begin running. Pass personId and actionPlanId (list_action_plans). Action Plans are planned for deprecation in favour of Automations 2.0 (no date set).list_action_plan_peopleList action plan peopleGETLists which Action Plans run on which people: filter by personId for one person's plans or by actionPlanId for one plan's people. Each row has its status. Action Plans are planned for deprecation in favour of Automations 2.0 (no date set).list_action_plansList action plansGETLists the account's Action Plans (automated follow-up sequences) with id, name and status; filter by status, names or ids. Action Plans are planned for deprecation in favour of Automations 2.0 (no date set).update_action_plan_personUpdate action plan personPUTPauses or resumes an Action Plan running on a person: set status to Running or Paused. The id is the row id from list_action_plan_people. Action Plans are planned for deprecation in favour of Automations 2.0 (no date set).
Call, 4 operations
create_callCreate callPOSTLogs a phone call on a person (it does not place a call): personId, phone and isIncoming are required; add note, outcome and duration.get_callGet callGETReturns one logged call by id from list_calls: phone, person, user, direction, outcome, duration and note.list_callsList callsGETLists logged phone calls, filtered by personId or phone number; each has direction, outcome, duration and note. Some call data is visible only in the app.update_callUpdate callPUTUpdates a logged call; send only the fields to change. Only calls created by the same system or account through the API can be updated.
Note, 4 operations
create_noteCreate notePOSTAdds a note to a person's timeline (personId required) with a subject and a plain or HTML body.delete_noteDelete noteDELETEDeletes a note by its id.get_noteGet noteGETReturns one note by id, optionally with its threaded replies. Notes restricted by their source system answer 404 even when the id is valid.update_noteUpdate notePUTEdits a note's subject, body or isHtml; send only the fields to change.
Relationship, 4 operations
create_person_relationshipCreate person relationshipPOSTAdds a relationship (spouse, partner, other contact) to a person, with names, type, emails and phones.delete_person_relationshipDelete person relationshipDELETEDeletes a relationship by id; requires access to the parent person.get_person_relationshipGet person relationshipGETReturns one relationship by id: parent personId, names, type, priority flag, emails and phones.update_person_relationshipUpdate person relationshipPUTUpdates a relationship; send only the fields to change. emails and phones REPLACE the current lists when sent (left out, they stay unchanged). personId cannot change; addresses cannot be changed here.
Email campaign, 3 operations
create_email_campaignCreate email campaignPOSTRegisters a marketing email from your system as a campaign (it sends nothing). origin plus originId must be unique; keep the returned id for create_email_events. Owners and admins only.list_email_campaignsList email campaignsGETLists email marketing campaigns, built-in and from connected tools, with name, subject and HTML body; filter by origin and originId. Keep the page small: large bodies can fail.update_email_campaignUpdate email campaignPUTUpdates a registered email campaign's name, subject or HTML body (it sends nothing). Owners and admins only.
Event, 3 operations
create_eventCreate eventPOSTSends in a lead or lead activity for real: matches or creates the person, notifies the assigned agent by email or text, and can start Action Plans and Automations. Returns the person.get_eventGet eventGETReturns one lead event by id: type, source, message, property, property search and campaign details.list_eventsList eventsGETLists lead events (inquiries, registrations, property views, searches) with the property and search details, filtered by person, type or property.
User, 3 operations
delete_userDelete userDELETEDeletes a user from the account; their contacts are reassigned to the user given in assignTo. Admins only.get_userGet userGETReturns one user by id: name, email, phone, role, status, owner flag and groups.list_usersList usersGETLists the account's users (agents, brokers, lenders) with role, status, contact details, groups and teams; filter by role, name or email.
Email event, 2 operations
create_email_eventsCreate email eventsPOSTRecords up to 1000 marketing email events (delivered, open, click, bounces, unsubscribe, spamreport, dropped) on contacts; it sends nothing. Unknown recipients are skipped.list_email_eventsList email eventsGETLists email marketing events (delivered, open, click, bounce, unsubscribe, spam report) per person and campaign, filtered by type, personId or updatedAfter.
Smart list, 2 operations
get_smart_listGet smart listGETReturns one Smart List (id and name) by its id from list_smart_lists.list_smart_listsList smart listsGETLists Smart Lists (saved contact filters) with id and name; pass an id as smartListId to list_people to get their contacts.
Text message, 2 operations
get_text_messageGet text messageGETReturns one text message by id: direction, status, message, numbers, person and user.list_text_messagesList text messagesGETLists text messages for a person or a phone number: direction, status, message, numbers and user. Pass personId, toNumber or fromNumber: without one the call fails. Some data is visible only in the app.
Identity, 1 operation
get_identityGet identityGETReturns the connected account (id, domain, owner) and the user the API key belongs to. Use it to check the connection.
Reaction, 1 operation
get_reactionGet reactionGETReturns one emoji reaction by id: the reacted-to item (refType, refId), the emoji and who created it. Beta in Follow Up Boss.
Team inbox, 1 operation
list_team_inboxesList team inboxesGETLists the account's shared Team Inboxes with their ids, names and the users who can access each.
Threaded reply, 1 operation
get_threaded_replyGet threaded replyGETReturns one threaded reply (a reply on a note) by id with its body, author and dates. Reactions are not returned. Beta in Follow Up Boss.
Timeframe, 1 operation
list_timeframesList timeframesGETLists the timeframes defined in the account (id and label), the values accepted as timeframeId on create_person and update_person.
Use Follow Up Boss from Claude Code, Cursor or Codex
Connect Follow Up Boss in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Follow Up Boss operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Follow Up Boss
- Create your workspace
Sign up free. Nothing to install.
- Connect Follow Up Boss once
Add your Follow Up Boss connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Follow Up Boss integration FAQ
What can you do with the Follow Up Boss integration?
LiveContext exposes 118 operations on Follow Up Boss, covering person, group, template and text message template.
