add_property
ChatGPTAdd buyer search criteria, a closed home sale, or a property listing for a contact.
create_contact
ChatGPTCreate a new contact in the user's CRM and return its id and name. Refuses to create a same-named duplicate unless confirm_duplicate is true (returns a duplicate_warning instead).
create_followup
ChatGPTSchedule a follow-up reminder for a contact. One-time unless a frequency is given.
create_note
ChatGPTCreate a personal note, optionally linked to a contact by id or one unambiguous contact-name match.
create_power_text_draft
ChatGPTCreate a Power Texting draft: one SMS message template plus the contacts it should go to. It appears in the user's mobile app under Power Texting → Drafts, where they send it one tap per person from their own phone number. This drafts a message only — it never sends texts itself.
create_todo
ChatGPTCreate a to-do, defaulting its due date to today in the user's timezone. contact_ids links it to the contacts it concerns, so it shows on each contact's page.
delete_record
ChatGPTDelete one CRM record: a contact, follow-up, to-do, note, calendar event, transaction, group, or one of a contact's property records. Two-step: a call without confirmation_token returns a preview naming the record plus a single-use confirmation_token; a second call with the same target fields and that token deletes it. Tokens expire after 30 minutes; confirmation_invalid means nothing was deleted.
export_data
ChatGPTExport CRM data as CSV and email the caller a signed download link, or simulate outside production/export-enabled environments.
get_contact
ChatGPTGet a contact's details, relationships, notes, property records, follow-ups, the groups it belongs to, its open linked to-dos, and optionally recent activity. Resolves contacts another user shared with the caller too; those come back flagged shared with shared_by and access_level.
get_crm_stats
ChatGPTGet a CRM overview for the current user: counts of contacts, leads, upcoming/overdue follow-ups, current/overdue/completed to-dos, notes, groups, upcoming events, and transactions. For questions about how the CRM is doing or the user's current numbers.
get_events_feed
ChatGPTRead the tenant's activity-event log (newest first) with cursor pagination — the sync surface for connected apps.
get_stale_contacts
ChatGPTFind contacts the user hasn't opened in the last N days (or ever), oldest first. Returns each contact's id, name, email, phone, type and last_opened_at, plus the total number of stale contacts.
get_transaction
ChatGPTGet one transaction with its pipeline column name, linked contacts, tags, and available pipeline columns.
get_upcoming
ChatGPTGet upcoming birthdays, housiversaries, follow-ups, or all upcoming CRM reminders.
list_groups
ChatGPTList contact groups, split into owned_groups (the caller's own) and shared_groups (groups other users shared with the caller, each carrying shared_by and access_level). A group appears in exactly one of the two lists. Pass group_id for one group's details with its member contacts, owned or shared.
list_power_text_drafts
ChatGPTList the user's Power Texting drafts (SMS templates waiting to be sent from their phone), newest first.
list_power_text_sessions
ChatGPTList past Power Texting sessions — who the user power texted from their phone, when, and per-person sent/skipped status.
log_event
ChatGPTLog an activity event (lead registration, property view, favorite, saved search, tour request, inquiry...) for a person. Client Keeper resolves the person by contact id or email — creates the contact if new (created=true, matched_by=null), or appends to the existing contact's timeline (created=false, matched_by='id'|'email'). Phone is never used to match: it is not a reliable identity.
manage_event
ChatGPTCreate, update, or cancel a calendar event. Cancel sets its status to cancelled; it does not delete the event.
manage_group
ChatGPTCreate, rename, add contacts to, or remove contacts from a contact group.
manage_transaction
ChatGPTCreate/update transactions, link contacts, add/remove tags, or create/rename/recolor transaction pipeline columns.
search_crm
ChatGPTSearch or list CRM contacts, leads, follow-ups, to-dos, notes, events, or transactions filtered by text, status, type, lead fields, dates or group. Returns up to limit records (max 100) starting at offset, with the total number of matches where available. To-dos include their linked contacts; contact_id lists one contact's to-dos. Leads include lead_source.
search_properties
ChatGPTSearch property records across all contacts: buyers' saved home-search criteria (kind buyer_search — "who is looking for a 3-bed in Bentonville under $400k", or match buyers to a listing by passing its price as min_price and max_price, plus listing_bedrooms, listing_bathrooms and listing_city), properties contacts are selling (listing), or past closed sales (closed). Filter by location, price range, bedrooms and bathrooms. Returns the owning contact's id and name with each record.
show_buyer_matches
ChatGPTShow buyers whose saved home-search criteria match a listing (pass listing: price, bedrooms, bathrooms, city) or a set of filters, as selectable cards with budget, beds/baths, locations and the reasons each one matched. Use for "who would want this listing" or "who is looking in Bentonville under $400k". The user can select buyers on the card and send them back to the conversation for a Power Text draft.
show_closing_timeline
ChatGPTShow one transaction's closing timeline: days to close, the close date, the parties and their roles, with buttons to add a dated to-do or hand the dates to the user's calendar. Use when the user asks when a deal closes or what is left before closing.
show_contact
ChatGPTShow an interactive contact card: details, groups, call/text/email links, next follow-up, open to-dos, latest notes, properties and recent activity, with buttons to add a note, a to-do or a follow-up. Use when the user asks to see, open or pull up a contact.
show_contact_form
ChatGPTShow an editable new-contact form pre-filled with the given fields, such as details taken from a pasted email signature, business card photo or message. Checks for likely duplicates and lets the user pick a group and a first follow-up date. Does not save anything; the contact is created only when the user presses Save on the card.
show_debrief
ChatGPTShow a meeting debrief for approval: the given note, to-dos, next follow-up and contact updates drawn from call or meeting notes, each editable and individually toggleable. Does not save anything; the selected records are written only when the user presses Save selected on the card.
show_followup_planner
ChatGPTShow the follow-up planner: overdue follow-ups, then a day-by-day view of the coming days, with buttons to complete or reschedule each one and to spread the overdue ones evenly across the next weekdays. Use when the user wants to plan, catch up on or reschedule follow-ups.
show_housiversary
ChatGPTShow a contact's housiversary card: the home, years owned, days until the anniversary and an editable message, with buttons to save it as a Power Text draft, add a to-do on the day, or ask for a rewrite. Use when the user asks about a client's home anniversary.
show_lead_inbox
ChatGPTShow the lead inbox: leads with status, priority, source and latest activity, with inline controls to change status or priority and schedule a first touch. Use when the user asks about new leads, their pipeline, or who to call first.
show_pipeline
ChatGPTShow the transaction pipeline board: every pipeline column with its deals, deal count and total price, and a "Move to" control on each card. Use when the user asks about their pipeline, deals under contract, or wants to move a deal to another stage.
show_power_text_composer
ChatGPTShow the Power Text composer: a message template with merge fields, a live per-recipient preview and the recipient list, saved as a draft. It never sends texts — the user sends from the Client Keeper mobile app under Power Texting → Drafts. Use when the user wants to text several contacts or a group.
show_snapshot
ChatGPTShow the business snapshot: tiles with today's counts of contacts, leads, follow-ups, to-dos, groups, upcoming events and transactions, with overdue items highlighted. Current totals only — there is no history or trend. Use when the user asks how their business or CRM is doing.
show_stale_contacts
ChatGPTShow a one-at-a-time triage of contacts the user hasn't opened recently: draft a text, schedule a follow-up, or skip. Use when the user wants to reconnect with people, clean up neglected contacts, or asks who they have lost touch with.
show_today
ChatGPTShow the interactive Today board: overdue and due-today to-dos, follow-ups due, and upcoming birthdays and housiversaries, with buttons to complete or reschedule. Use when the user asks what is on their plate, what is due, or who to reach out to.
update_contact
ChatGPTUpdate a contact's profile fields, including full email/phone list replacement, birthday set/clear, and whether they are included in Power Texting.
update_followup
ChatGPTEdit, complete, or reschedule a follow-up.
update_lead
ChatGPTUpdate lead status, score, priority, lead flag, and full-replace descriptive lead tags.
update_todo
ChatGPTEdit, complete, or reopen a to-do. When editing, contact_ids replaces the contacts the to-do is linked to.
add_property
Claudecreate_contact
Claudecreate_followup
Claudecreate_note
Claudecreate_power_text_draft
Claudecreate_todo
Claudedelete_record
Claudeexport_data
Claudeget_contact
Claudeget_crm_stats
Claudeget_events_feed
Claudeget_stale_contacts
Claudeget_transaction
Claudeget_upcoming
Claudelist_groups
Claudelist_power_text_drafts
Claudelist_power_text_sessions
Claudelog_event
Claudemanage_event
Claudemanage_group
Claudemanage_transaction
Claudesearch_crm
Claudesearch_properties
Claudeshow_buyer_matches
Claudeshow_closing_timeline
Claudeshow_contact
Claudeshow_contact_form
Claudeshow_debrief
Claudeshow_followup_planner
Claudeshow_housiversary
Claudeshow_lead_inbox
Claudeshow_pipeline
Claudeshow_power_text_composer
Claudeshow_snapshot
Claudeshow_stale_contacts
Claudeshow_today
Claudeupdate_contact
Claudeupdate_followup
Claudeupdate_lead
Claudeupdate_todo
Claude