API & MCP

Everything modellus can do is available through code. The same actions the app uses internally can be called from your program or from another AI.

Authentication

Create a key from the app and send it with every request:

curl https://modellus.ai/api/v1/resumen_cuenta \
  -H "Authorization: Bearer mll_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

From another AI (MCP)

Connect Claude, ChatGPT, or any MCP-compatible client to this address, with the same key:

https://modellus.ai/api/mcp

Specification

The full OpenAPI spec, with every parameter and response, lives at /api/v1/openapi.json.

Available actions (41)

  • resumen_cuenta
    Account
    Read-only

    Returns the asking account's own data: display name and when it was created. Use it at the start of a conversation to know who you are talking to, or when asked "who am I?".

    No parameters.

  • adjust_pipeline_view
    Pipeline
    Writes data

    Shows or hides columns in the pipeline screen (stage, amount, address, days in stage, loan number, created). Use it when asked to add, remove, show or hide a pipeline column — "show the loan number in the pipeline", "hide the address column". To read the pipeline itself use view_pipeline.

    mostrararray
    Columns to turn on, if any
    ocultararray
    Columns to turn off, if any
  • cambiar_nombre
    Account
    Writes data

    Changes the account's display name. Use it only when explicitly asked to change or correct how the user is called.

    nombrestringrequired
    The new name, exactly as they want it displayed
  • find_contact
    Contacts
    Read-only

    Search the rolodex by anything the user says: a name (even partial or misspelled), a phone number or its last digits, an email, a tag, or a role like "realtor" or "title company". Use it whenever the user asks about a person ("what is Maria's number?", "show me my appraisers"), before saving someone you are not sure exists, and to get the contact details other actions need. Returns matching contacts with their roles, tags and key data; when few match, it includes their latest activity.

    querystring
    Free text: name, email, phone or fragment. Omit to browse by role or tag.
    rolestring
    Only contacts with this role, e.g. "realtor" or "past_client".
    tagstring
    Only contacts carrying this tag.
    limitinteger
    Max results, default 10.
  • save_contact
    Contacts
    Writes data

    Create a new contact or update an existing one. Use it when the user introduces someone new ("add Maria Torres, she's a realtor, 704-555-0142") or changes someone's details ("John has a new email"). Updates when given an id or when the email/phone matches an existing contact exactly; if the new person looks like a probable duplicate it does NOT create — it returns the candidates so you can confirm with the user and either update/merge them (merge_contacts) or retry with create_anyway. When provided, roles and tags REPLACE the existing lists — include the ones to keep.

    idinteger
    The contact id, when updating someone find_contact already returned.
    namestring
    Full name. Required when creating.
    emailstring
    phonestring
    Any format; stored as E.164, US +1 assumed for 10 digits.
    rolesarray
    Business roles, e.g. ["realtor", "referral_source"]. Replaces the list.
    tagsarray
    Replaces the list.
    addressstring
    companystring
    nmls_licensestring
    preferred_languagestring
    referral_sourcestring
    Who or what referred them.
    notesstring
    Free-form background notes.
    create_anywayboolean
    Set true ONLY after the user confirmed the probable duplicate is a different person.
  • merge_contacts
    Contacts
    Writes data

    Merge two contacts that are the same person into one. Use it after save_contact or the import reported a probable duplicate and the user confirmed they are indeed the same, or when the user says "these two are the same person". Takes the two ids (find_contact gives them). The FIRST contact wins on conflicting fields; roles, tags and data are combined, and a non-null email/phone is never lost. The second contact is deleted. Never call it without the user confirming which two to merge.

    keep_idintegerrequired
    The contact that survives and wins on conflicts.
    merge_idintegerrequired
    The duplicate that gets absorbed and deleted.
  • review_contact_import
    Contacts
    Writes data

    FIRST step of importing contacts from a CSV (from another CRM, a phone export, a spreadsheet). Use it when the user pastes or uploads CSV data. It parses the text, auto-maps the columns by header name (pass mapping to correct it, e.g. {"Cell": "phone"}), normalizes every row, flags probable duplicates against the existing rolodex, and stages everything under a batch id WITHOUT touching the contact list. Show the user the summary and, once they confirm, run import_contacts with the batch id. Nothing is imported until then.

    csv_textstringrequired
    The raw CSV content, headers in the first row.
    mappingobject
    Column-to-field overrides, e.g. {"Cell Phone": "phone"}. Fields: name, first_name, last_name, email, phone, company, address, role, tags, notes, nmls_license, referral_source. Map a column to "skip" to ignore it.
  • import_contacts
    Contacts
    Writes data

    SECOND step of a CSV import: executes a batch that review_contact_import staged, after the user confirmed the summary. Creates the clean rows, merges the exact duplicates (matching email/phone) into their existing contact, and discards rows flagged for review. Pass treat_duplicates_as if the user decided differently for the flagged ones: "merge" folds them into their closest match, "create" imports them as new contacts anyway, "skip" leaves them out (the default for name-only matches).

    batch_idstringrequired
    The batch id review_contact_import returned.
    treat_duplicates_asstring
    Override for rows flagged as probable duplicates. Default: each row's suggestion.
  • log_note
    Contacts
    Writes data

    Write a dated note on a contact's timeline. Use it whenever the user tells you something worth remembering about a person: "note that Maria prefers texts after 5pm", "log that I called John about his rate", or after a call/meeting they want recorded. The contact is whatever the user calls them — a name, email or phone fragment. Do NOT use it to change contact fields; that is save_contact.

    contactstringrequired
    Who, as the user says it: name, email or phone fragment.
    notestringrequired
    The note text.
    datestring
    When it happened (ISO date), only if different from today.
  • view_pipeline
    Pipeline
    Read-only

    Shows the pipeline: how many pre-quals and loans sit in each stage, who they belong to, how many days each has been in its current stage, and which ones are stalled (more than 7 days in an active stage). Use it when asked "how does my pipeline look", "what do I have going on", "what is stuck", or for any overview of current files. For one specific file use find_loan instead.

    tipostringrequired
    Which pipeline to show. Use 'both' unless the user asks only about pre-quals or only about loans.
    estadostring
    Only files in this stage, by its name as people say it ('clear to close', 'docs received'). Leave out for the whole pipeline.
  • find_loan
    Pipeline
    Read-only

    Finds ONE loan or pre-qual and returns its full file: stage, amounts, property, borrowers, every other participant (realtor, title company…), the financial items collected so far, and the dated milestones. Use it whenever the user asks about a specific file — "how is the Garcia loan going", "what do we have on 412 Elm St", "show me loan 1002941". Accepts a borrower name, a property address, or a loan number.

    prestamostringrequired
    The file, as the user says it: borrower name, property address, or loan number
  • create_prequal
    Pipeline
    Writes data

    Creates a new pre-qualification for a borrower and puts it in the pipeline at "To Be Contacted". Use it when a new lead comes in: "add a pre-qual for Maria Garcia", "new lead: John Smith, 555-0142". If the borrower is not a contact yet, pass their email or phone and the contact is created too. To move an existing file forward use move_stage, not this.

    borrowerstringrequired
    The borrower, as the user says it: a name, an email, or a phone
    emailanyrequired
    Email for a NEW contact. Null if the borrower already exists or no email was given.
    telefonostringnullrequired
    Phone for a NEW contact. Null if the borrower already exists or no phone was given.
  • move_stage
    Pipeline
    Writes data

    Moves a loan or pre-qual to another pipeline stage and stamps the milestone date. Use it whenever the user reports progress: "the Garcia docs came in" → docs_received, "submitted Elm St to underwriting" → submitted_to_underwriting, "put it on hold". Some transitions notify the borrower or the realtor automatically: with preview=true it only answers WHAT would be sent, without moving anything — use that when the user asks "what happens if…". With skip_notifications=true it moves silently (e.g. correcting a mistake). The valid stages depend on whether the file is a pre-qual or a loan; if unsure, view_pipeline lists them. To turn a pre-qual into a loan use convert_to_loan instead.

    prestamostringrequired
    The file, as the user says it: borrower name, property address, or loan number
    estadostringrequired
    The target stage, in snake_case: 'docs_received', 'clear_to_close'…
    previewboolean
    true = do NOT move; only report which notifications the move would send. For "what would happen if…" questions.
    skip_notificationsboolean
    true = move without notifying anyone. For silent corrections.
    forceboolean
    true = advance EVEN IF documents or UW conditions are still owed. Only when the user explicitly says to move it anyway.
  • convert_to_loan
    Pipeline
    Writes data

    Converts a pre-qualification into an active loan, starting it at "Contract Received". Use it when a pre-qual borrower goes under contract: "Garcia got the house!", "we have a contract on Elm St", "convert Maria to a loan". Only works on pre-quals; an active loan moves with move_stage.

    prestamostringrequired
    The pre-qual, as the user says it: borrower name, address, or number
  • update_loan
    Pipeline
    Writes data

    Updates fields on a loan or pre-qual: amount, closing date, tags, file data (address, program, purchase price, down payment, FICO, DTI, rates and lock terms, appraisal status/value, income verification, notes…) or a milestone date (disclosures, lock, appraisal, title, insurance, credit, contract, closing). Use it when the user gives new facts about a file: "the Garcia loan is for $420k", "rate locked at 6.5 until Sep 15", "appraisal came in at $510k", "closing moved to October 3", "tag it VIP". Only pass what changed. To change the pipeline stage use move_stage instead.

    prestamostringrequired
    The file, as the user says it: borrower name, address, or number
    montoanyrequired
    New loan amount in USD. Null if unchanged.
    fecha_cierreanyrequired
    New closing date (ISO). Null if unchanged.
    etiquetasanyrequired
    The FULL new list of tags (replaces). Null if unchanged.
    datosanyrequired
    File data to merge in. Property: property_address, property_type, property_usage, property_value, structure_type, appraisal_status, appraisal_value, number_of_units, title_under_a_corporation, corporate_name. Loan: loan_number (broker), loan_number_lender, program, purpose, fico_score, purchase_price, down_payment, down_payment_percentage, loan_amount_2, loan_to_value, combined_loan_to_value, dti, amortization_type, amortization_term_months, interest_only, income_verification, waive_escrows, lender_program, prepayment_penalty_term/type. Rates: rate, note_rate, interest_rate_locked, interest_rate_disclosed, interest_rate_buydown, interest_rate_cost, lock_cost, rate_cost_credit, credit_to_borrower, interest_rate_cost_credit_percent, rate_lock_extension_cost, rate_locked_type, lock_expires. Also compensation_pct, priority, notes. Null if unchanged.
    fechasanyrequired
    Milestone dates to set by name, like {"appraisal_received": "2026-09-01"}. Valid names are pipeline stages (contract_received, clear_to_close, loan_funded…) and named milestones — disclosures: initial_disclosures_sent, intent_to_proceed, le_sent, le_signed, le_received, revised_le_sent, revised_le_signed, cd_requested, cd_sent, cd_signed, revised_cd_sent, revised_cd_signed; lock: lock_date, lock_extension, lock_expiration; appraisal: appraisal_ordered, appraisal_received; title: title_ordered, title_received; insurance: hoi_ordered, hoi_received; credit: credit_ordered, credit_expiration, tax_transcript_ordered, tax_transcript_received; contract: sales_contract_date, appraisal_contingency, loan_contingency, closing_contingency, earliest_closing; closing: estimated_funding, first_payment, date_to_avoid_epo, pre_approval_expiry, underwriting_approval. Null if unchanged.
  • update_loan_items
    Pipeline
    Writes data

    Records or removes financial items and properties on a loan file: jobs (W2, 1099, VOE), other income (P&L, child support, IRS transcripts), bank accounts, retirement accounts, gift funds, asset depletion, liabilities (incl. IRS or government payment plans, child support payments), and real estate. Use it whenever the loan officer mentions a borrower's income, assets, debts, or properties — e.g. "she works at Amazon, W2, $85k" or "they have a checking account at Chase". For a property, proposed_status in datos says if it is retained, pending sale, or sold with this loan. The document checklist regenerates automatically from these items.

    prestamostringrequired
    The file, as the user says it: borrower name, address, or number
    agregaranyrequired
    Items to add. Null if only removing.
    quitaranyrequired
    Item ids to remove (find_loan lists them). Null if only adding.
  • assign_loan_contact
    Pipeline
    Writes data

    Adds or removes a participant on a loan or pre-qual by role: borrowers and co-borrowers (up to 4, ordered), realtor, listing agent, title company, appraiser, insurance agent… Use it when the user connects people to a file: "the realtor on Elm St is Susan Chen", "add Carlos as co-borrower on the Garcia loan", "remove the appraiser from 412 Elm". The person must already be a contact.

    prestamostringrequired
    The file, as the user says it: borrower name, address, or number
    contactostringrequired
    The person, as the user says it: name, email, or phone
    rolstringrequired
    Their role on this file, in snake_case: 'borrower', 'co_borrower', 'realtor', 'title_company', 'appraiser'…
    accionstringrequired
    'add' to attach the person, 'remove' to detach them
  • update_conditions
    Pipeline
    Writes data

    Manages the underwriting conditions of a loan: lists them, adds new ones, or marks one as received/approved/rejected/waived. Use it when the loan comes back approved with conditions ("UW wants 2023 tax returns and a gift letter"), when a condition clears ("the gift letter came in", "VOE approved"), or when asked what conditions are still open on a file.

    prestamostringrequired
    The loan, as the user says it: borrower name, address, or number
    accionstringrequired
    'list' to see the conditions, 'add' to create new ones, 'resolve' to change the status of one
    condicionesanyrequired
    For 'add': the text of each new condition. Null otherwise.
    condicionstringnullrequired
    For 'resolve': which condition, by a few words of its text. Null otherwise.
    estadoanyrequired
    For 'resolve': the new status. Defaults to 'aprobado' (cleared) when null.
  • check_documents
    Documents
    Read-only

    Shows the document checklist. With a loan (a phrase like "the Martinez loan" or an address), it lists every document grouped by status and by who owes it. Without a loan, it gives a cross-pipeline report of every loan with pending documents and how many days they have been waiting. Use it whenever the user asks what is missing, what came in, or what is stuck.

    loanstring
    The loan, as the user says it ("the Martinez loan", "123 Main St"). Leave empty for the cross-pipeline report.
  • request_documents
    Documents
    Writes data

    Prepares the document request for a loan: refreshes the checklist, groups what is missing by who owes it (borrower, realtor, title company, HOA), creates a secure upload portal link for each party, and queues a reminder message (email and text, whichever the contact has) with the link and the list of missing documents. Use it when the user wants to chase, collect or request the missing documents of a loan. The messages go out within a minute; the response says exactly what was queued to whom.

    loanstringrequired
    The loan, as the user says it ("the Martinez loan", "123 Main St").
  • review_document
    Documents
    Writes data

    Approves or rejects a received document. Identify it by document id, or by loan plus document type ("reject the bank statement on the Martinez loan"). Rejecting requires a reason — it is what the borrower reads to fix the resubmission. Use it when the user reviews paperwork from the chat instead of the review queue.

    document_idinteger
    The document id, when it is already known (e.g. from check_documents).
    loanstring
    The loan, as the user says it. Needed when there is no document_id.
    document_typestring
    The document type, e.g. "w2", "bank_statement_personal", "paystub".
    decisionstringrequired
    Whether the document is accepted or sent back.
    reasonstring
    Why it is rejected, written for the person who must resubmit it.
  • send_portal_link
    Documents
    Writes data

    Creates (or renews) the secure upload portal link for one contact on one loan and returns the URL. Use it when the user asks for the link of a specific person — "resend the portal to Maria", "give me the upload link for the title company". Renewing invalidates the previous link of that person on that loan.

    loanstringrequired
    The loan, as the user says it ("the Martinez loan", "123 Main St").
    contactstringrequired
    The person, as the user says it ("Maria", "the realtor of...").
  • adjust_checklist
    Documents
    Writes data

    Adjusts the checklist of ONE loan by hand: adds documents the rules did not derive ("also ask for a divorce decree") or marks documents as not applicable ("we do not need the survey on this one"). For changing the office-wide rules use edit_checklist_rules instead.

    loanstringrequired
    The loan, as the user says it ("the Martinez loan", "123 Main St").
    addarray
    Documents to add to this loan.
    removearray
    Document types to mark as not applicable on this loan.
  • view_checklist_rules
    Documents
    Read-only

    Explains the active document checklist rules of this office in plain English, including any per-account overrides (disabled types, how many bank statements or tax return years). With a loan, it also explains which rule generated each document on that checklist. Use it when the user asks why a document is being requested or how the checklist works.

    loanstring
    A loan, to also explain what generated each of its documents.
  • edit_checklist_rules
    Documents
    Writes data

    Changes the office-wide checklist rules: disable a document type so it is never requested ("we never ask for surveys"), re-enable it, or change quantities ("ask for 3 bank statements", "1 year of tax returns"). Applies to every loan the next time its checklist syncs. For one specific loan use adjust_checklist instead.

    disablearray
    Document types to stop requesting everywhere, e.g. ["survey"].
    enablearray
    Previously disabled document types to request again.
    bank_statementsinteger
    How many bank statements to request per account (default 2).
    tax_return_yearsinteger
    How many years of tax returns to request (default 2).
    w2_yearsinteger
    How many years of W-2s to request (default 2).
  • send_message
    Communication
    Writes data

    Sends an email, text (SMS) or WhatsApp message to a contact, written free-form or from a template. IMPORTANT: it is a two-step action — call it first WITHOUT confirm to get the rendered draft, show that draft to the user and ask for their approval, and only when they approve call it again with confirm=true to actually send. Use it when the user wants to message, email or text someone: "text Maria that we are waiting on her W-2", "send the Garcias the welcome email". For reading past messages use view_conversation.

    contactostringrequired
    Who, as the user says it: a name, email or phone number.
    canalstring
    How to send it. If omitted: email when the contact has one, otherwise sms.
    mensajestring
    Free-form body. Either this or plantilla is required.
    asuntostring
    Email subject (free-form emails only).
    plantillastring
    A template key ('docs_missing_reminder', 'weekly_summary'…) instead of free text. view_templates lists them.
    variablesobject
    Values for the {{variables}} of the template, when using one.
    confirmboolean
    true = the user already saw and approved the draft: send it. Never set it on the first call.
  • view_conversation
    Communication
    Read-only

    Shows the message history (emails, texts, WhatsApp — sent and received) with a contact, or all the messages around a loan. Use it when the user asks "what have we sent Maria?", "did the reminder go out?", "show me the thread on the Garcia file". Give it a contact or a loan (at least one).

    contactostring
    The person, as the user says it: name, email or phone.
    loanstring
    The loan, as the user says it ("the Martinez loan", "412 Elm").
    limiteinteger
    How many messages (default 20, newest first).
  • view_templates
    Communication
    Read-only

    Lists the message templates: their key, what each one says by default, which channels and languages exist, whether the account customized them, and which pipeline transition triggers each one automatically. Use it when the user asks what messages go out, wants to see a template before editing it, or before send_message with a template key. To change one, use edit_template.

    clavestring
    One template key to see in full (with its default bodies). Omit to list them all.
  • edit_template
    Communication
    Writes data

    Edits a message template for this account: saves a draft (default) or publishes it (publish=true) so it replaces the stock wording in every future send. Use it when the user wants to change what a message says: "make the docs reminder friendlier", "add my calendly to the welcome email". Variables go in double braces — {{borrower_name}}, {{portal_link}}… — view_templates lists each template's variables. It always returns a test render with sample data: show it to the user.

    clavestringrequired
    The template key ('docs_missing_reminder'…).
    canalstringrequired
    Which channel version to edit.
    idiomastring
    Which language version (default 'en').
    cuerpostringrequired
    The new body, with {{variables}} where data should go.
    asuntostring
    The new subject (email only).
    publishboolean
    true = make it live for every future send. Default: save as draft only.
  • generate_preapproval_letter
    Communication
    Writes data

    Generates the official pre-approval letter (PDF) for a loan: amount, program, expiration and the standard disclaimers, signed by the loan officer. It uploads the PDF to the file's documents and returns a download link that lasts 7 days. Use it when the user asks for a pre-approval letter: "generate the pre-approval for Garcia", "make me a letter for 320k for the Elm St file". Amount and expiration are optional: without them it uses the loan amount on file and 60 days.

    loanstringrequired
    The loan, as the user says it ("the Garcia file", "412 Elm").
    montonumber
    Approved amount in USD. Omit to use the loan amount on file.
    expirastring
    Expiration date (YYYY-MM-DD). Omit for 60 days from today.
    tasanumber
    Interest rate to show, if the user wants it on the letter.
  • view_automations
    Communication
    Read-only

    Shows every automation of the account: which are on or off, their cadence in days, and when the scheduled jobs run. Use it when the user asks "what runs automatically", "is the document reminder on", "how often do borrowers get reminded", or before changing one. To turn one on/off or change its cadence use set_automation.

    No parameters.

  • set_automation
    Communication
    Writes data

    Turns an automation on or off, or changes its cadence in days. Use it when the user says "stop reminding borrowers", "turn the document reminder back on", "remind every 5 days instead", or any change to what runs automatically. The automation is whatever the user calls it ("the document reminder"); view_automations lists the exact keys.

    automationstringrequired
    Which automation, as the user says it: the key ("docs_missing_reminder") or words from its name ("document reminder").
    enabledboolean
    true to turn it on, false to turn it off.
    cadence_daysinteger
    Every how many days it fires (for automations with a cadence).
  • view_tasks
    Tasks
    Read-only

    Lists tasks. Use it when the user asks "what do I have today", "what is overdue", "my tasks for the week", or wants the to-dos of one loan, one contact, or one team member. Filters combine: due window, loan or contact as a phrase ("the Garcia file", "Maria"), assignee ("me", a name, an email). By default it shows pending tasks only; ask for done or cancelled explicitly. To create or change a task use save_task.

    duestring
    Due window: 'today' (due today or earlier), 'overdue' (past due), 'week' (next 7 days), 'all'. Default 'all'.
    statusstring
    Which tasks. Default 'pending'.
    loanstring
    Only tasks of this loan, as the user says it.
    contactstring
    Only tasks about this person, as the user says it.
    assigneestring
    Only tasks assigned to this member: "me", a name or email.
  • save_task
    Tasks
    Writes data

    Creates or updates a task. Use it when the user wants to remember to do something ("remind me to call Maria on Friday"), completes one ("done with the CD review"), cancels one, edits its due date, adds or checks off subtasks, ties it to a loan or contact, or assigns it to a team member. To create, give a title; to change an existing one, name it by its id or by words from its title. To list tasks use view_tasks.

    taskstring
    The existing task to change: its id, or words from its title. Leave empty to create a new one.
    titlestring
    The task title. Required when creating; renames when editing.
    descriptionstring
    Longer detail.
    duestring
    When it is due, ISO (YYYY-MM-DD or full timestamp). 'none' clears it.
    statusstring
    Set to 'done' to complete, 'cancelled' to cancel, 'pending' to reopen.
    subtasksarray
    Replaces the whole subtask list. To add some, use add_subtasks.
    add_subtasksarray
    Subtasks to append, unchecked.
    check_subtaskstring
    Words from one subtask to mark as done.
    loanstring
    The loan this task is about, as the user says it.
    contactstring
    The person this task is about, as the user says it.
    assigneestring
    Who should do it: "me", a name, or an email.
  • production_report
    Insights
    Read-only

    Production report for a period: how many loans closed, total volume, and estimated commission, compared against the previous equivalent period. Use it when the user asks "how did I do this month", "what did I close in Q2", "my production last year", or any question about closings, volume, or commissions over time. For who referred the business use referral_report; for how long stages take use stage_timing_report.

    periodstring
    The period as the user says it: "this month", "last quarter", "Q2 2026", "March", "2025", "last 30 days". Defaults to this month.
  • referral_report
    Insights
    Read-only

    Referral report for a period: which sources brought the business — deals, volume, and conversion per source. Use it when the user asks "who is sending me business", "which realtor referred the most this quarter", "where are my deals coming from", or wants to know whom to thank or nurture. For totals closed use production_report.

    periodstring
    The period as the user says it: "this month", "last quarter", "Q2 2026", "2025", "last 90 days". Defaults to this month.
  • stage_timing_report
    Insights
    Read-only

    How long each pipeline stage typically takes, averaged from this account's closed loans, and which active loans are currently taking longer than that typical time. Use it when the user asks "how long does underwriting take me", "where do my loans slow down", "which files are behind schedule", or wants process insights. For a plain list of stalled files (fixed 7-day flag) use view_pipeline.

    No parameters.

  • weekly_summary
    Insights
    Read-only

    The weekly summary email, generated on demand: what moved stages this week, which documents came in, what is stalled, what closes in the next two weeks, and overdue tasks — as ready-to-send text. Use it when the user asks "give me my weekly summary", "how was my week", "what happened this week", or wants a recap to forward. The same summary goes out automatically by email every week.

    No parameters.

  • view_team
    Team
    Read-only

    Lists the team of this account: the owner plus every invited assistant, with name, email, and role. Use it when the user asks "who is on my team", "who has access to my account", or before inviting or removing someone to confirm who is already in.

    No parameters.

  • invite_teammate
    Team
    Writes data

    Invites a person by email to join this account as an assistant: they get full day-to-day access (contacts, pipeline, documents) but cannot manage the team. Only the account owner can do this. Use it when the user says "invite my assistant", "add maria@x.com to my team", "give my processor access". Returns the invitation link too, in case the email does not arrive.

    emailstringrequired
    The email of the person to invite, e.g. "maria@gmail.com".
  • remove_teammate
    Team
    Writes data

    Removes an assistant from this account by email or name, revoking their access immediately. Only the account owner can do this. Use it when the user says "remove maria from my team", "revoke access for x@y.com", "my assistant left". The owner cannot be removed.

    memberstringrequired
    The teammate, as the user says it: an email ("maria@gmail.com") or a name ("Maria").