MCP server

The CRM yourAI agents run on.

Connect Claude, ChatGPT, Cursor or your own agents to Orbit. They can read and update contacts, companies and deals, book meetings, run sequences and set up the CRM itself, with 198 tools scoped to the team and permissions you approve.

Book a demo
OAuth sign-in · No API keys to paste · Included on every plan

Your MCP server URL

https://app.useorbitcrm.ai/api/mcp

How it works

Connected in three steps.

Works with the AI assistants and coding agents you already use, and with any agent that speaks MCP over HTTP.

  1. 01
    Add the server

    Paste one URL into your assistant or agent. There are no API keys: it discovers OAuth and registers itself.

  2. 02
    Approve access

    Sign in to Orbit, pick the team, and choose exactly what the agent may read and write.

  3. 03
    Ask in plain words

    Build the CRM, work the pipeline, book meetings and follow up, from the chat you already use.

ClaudeChatGPTClaude CodeCursorVS CodeGemini CLIWindsurf
Orbit

No more weeks of setup

Set up your whole CRM in one conversation.

Building a CRM used to mean days of clicking through settings before anyone could sell from it. Tell your agent how you sell. It builds the structure, keeps the records current and shows you what it did.

  • Shaped to how you sell

    Pipelines, stages, win probabilities, custom fields, lost reasons and saved views.

  • Kept current by your agents

    Agents create and update companies, contacts and deals as they work: logging calls, moving stages, filling in fields.

  • Change it in a sentence

    Add a field, split a stage or retag a segment whenever you need to.

Setup guide
Claude· Orbit connected

We sell annual contracts: SDRs book demos, AEs close. Set Orbit up for that, and flag deals that go quiet.

  1. get_crm_schemaRead the current fields, pipelines and settings
  2. create_pipelineNew business: Demo booked, Discovery, Proposal, Negotiation, Won, Lost
  3. create_crm_fieldContract value, Renewal date, Seats and Lead source on deals
  4. update_crm_settingsRequire a lost reason, flag deals stale after 14 days
  5. create_contact_viewQualified leads with no meeting yet, by owner

Done. New business is live with six stages, four deal fields and a stale flag at 14 days. Want win probabilities on each stage?

What you can do

Ask an assistant. Or build your own agent.

Orbit is the system of record your AI SDR, enrichment job or coding agent reads from and writes back to, so nothing it learns lives in a side spreadsheet.

With an AI assistant

Claude, ChatGPT

  • Work the pipeline
    “Which deals over $20k haven’t moved in two weeks? Create a follow-up task for each owner.”
  • Prep for every call
    “Brief me on today’s meetings: who’s coming, their company, open deals and our notes.”
  • Book the meeting
    “Find a 30-minute slot with Marcus on Thursday and book it with priya@lumenstudio.example.”
  • Follow up at scale
    “Enroll everyone tagged webinar-oct in the post-webinar sequence.”
  • Keep the data clean
    “Mark every contact at acme.com as qualified and tag them Customer.”
  • Read the numbers
    “What is our win rate this quarter against last, and who is behind on their goal?”

With your own agents

Claude Code, Cursor, VS Code, Gemini CLI, Windsurf

  • Qualify every inbound lead
    “For each new submission, score it against our ICP, tag it, and open a deal for the good ones.”
  • Enrich accounts
    “Research each new company and fill in its industry, headcount and location.”
  • Reshape the pipeline
    “Split Proposal into Proposal sent and Verbal yes, and move the deals waiting on a signature.”
  • Log the outcome
    “After each call, add a note to the deal and move it to the next stage.”
  • Quote from the deal
    “Add two Growth seats to the Acme deal and send Jordan a quote to accept.”
  • Wire Orbit into your product
    “Create a webhook for new form submissions and handle it in our Next.js API.”

Guides

Connect your assistant.

No API key needed. You sign in from your assistant and approve the permissions.

Connect Claude

  1. 1Open Customize, then Connectors, and search for OrbitForms in the directory.
  2. 2Not listed for you? Choose Add custom connector and paste the server URL.
  3. 3Sign in to Orbit when Claude asks, pick the team and approve the permissions.
https://app.useorbitcrm.ai/api/mcp/claude

Connect ChatGPT

  1. 1Open the plugin directory and search for OrbitForms, then choose Install.
  2. 2Not listed for you? Open chatgpt.com/plugins, choose Add custom MCP server, paste the URL and pick OAuth.
  3. 3Approve access on the Orbit consent screen.
https://app.useorbitcrm.ai/api/mcp

Connect Claude Code

  1. 1Run the command in your terminal.
  2. 2Open a session, run /mcp and choose Authenticate.
  3. 3Ask it to set up your pipeline, import a CSV or wire Orbit into your app.
claude mcp add --transport http orbit https://app.useorbitcrm.ai/api/mcp

Connect Cursor

  1. 1Open Cursor Settings, then MCP.
  2. 2Add a new server with the URL (type: http).
  3. 3Click the server to sign in and approve.
https://app.useorbitcrm.ai/api/mcp

Connect VS Code

  1. 1Open the Command Palette and run MCP: Add Server.
  2. 2Pick HTTP and paste the server URL.
  3. 3Start the server from the MCP view and sign in.
https://app.useorbitcrm.ai/api/mcp

Connect Gemini CLI

  1. 1Run the command in your terminal.
  2. 2Run /mcp auth orbit to sign in.
  3. 3Ask about a deal, a contact or this week’s meetings.
gemini mcp add --transport http orbit https://app.useorbitcrm.ai/api/mcp

Connect Windsurf

  1. 1Open Settings, then Cascade, then MCP servers.
  2. 2Add a server with the URL.
  3. 3Approve the connection in the browser.
https://app.useorbitcrm.ai/api/mcp

Security

Agents with guardrails. You stay in control.

Connected apps OAuth + PKCE
Claude Token refreshes on its ownRevoke
ChatGPT Token refreshes on its ownRevoke
Registered itself · no client ID or secret to copy

OAuth, not pasted keys

Assistants sign in through OAuth with PKCE and register themselves. Tokens refresh on their own and can be revoked at any time.

Allow Claude access toBrightloop
ContactsReadWrite
DealsReadWrite
TasksReadWrite
create_dealneeds Deals write · asks again

One team, your permissions

Every connection is limited to the team you pick and the permissions you approve on the consent screen.

Hosted assistant scopes Fixed
contacts:writedeals:writetasks:writenotes:writecrm:write
Delete contacts, companies, dealsNever
Delete forms or sequencesNever
Team members and billingNever
Same rate limits as the REST API

No delete scopes, ever

Hosted assistants never hold a delete scope, so they cannot delete contacts, companies, deals, forms or sequences, or manage team members and billing.

ToolsRead · Write · Outbound
list_dealsRead
update_contactWrite
enroll_contacts_in_sequenceOutbound
book_meetingOutbound
create_webhookOutbound
Outbound = email, invites and webhooks · asks first

Every tool is labeled

Each tool says whether it only reads, changes your Orbit data, or reaches outside Orbit, so assistants ask before sending email or booking.

Tools

All 198 tools.

Read tools only look. Write tools change your Orbit data. Outbound tools also email someone, send a calendar invite or post to a URL, so assistants ask before running them.

Search

1 tool
  • Search CRMsearch_crm

    Find contacts, companies, deals and tasks by name, email, domain or phone (contacts and companies), deal name or task title. Every word must match (three or more letters anywhere, shorter ones at a word start; phones by digits). Results come grouped by object, strongest match first (match: exact, starts_with, word, contains), with ID and link, within the credential's scopes, record access and visible pipelines. Use it to resolve a name to an ID.

    Read

CRM setup

9 tools
  • Get CRM Schemaget_crm_schema

    Describe the team's whole CRM in one call: standard and custom fields for contacts, companies, deals, tasks and notes; pipelines with their stages and visibility; contact, company, deal and task settings with what each setting does; lifecycle stages and lead statuses; tags; team members (IDs and names for owners and assignees); and member groups (teams). Start here before configuring or writing CRM data.

    Read
  • Update CRM Settingsupdate_crm_settings

    Change settings for one object; only the keys passed change and unknown keys are rejected. Every key, its values and who may set it: get_crm_schema settings_reference. contact: auto_link_company_by_domain, sync_owner_to_company, prospecting_lead_statuses, prospecting_stale_days. company: auto_create_from_contacts, auto_create_from_email_domain. deal: default_currency, lost_reasons, require_lost_reason, stale_after_days, default_owner, follow_contact_owner, fiscal_year_start_month, lifecycle_on_open_deal / lifecycle_on_won_deal, auto_renewal, deal_splits, card_fields, list_columns. task: default_due_days, default_assignee. contact, company, deal: required_on_create.

    Write
  • List Custom Fieldslist_crm_fields

    List the custom field definitions of contacts, companies, deals or tasks in display order: field_name, label, field_type, options, description, group_id (groups are in get_crm_schema), rules: validation, condition (when it shows / is required) and options_by (dependent options), and computed (calculated, rollup or synced; read-only values). Check them before writing values.

    Read
  • Create Custom Fieldcreate_crm_field

    Add a custom field to contacts, companies, deals or tasks. field_name defaults to snake_case of the label. Values: string/long_text/email/phone/url text, number/currency/percent numbers (12.5 = 12.5%), boolean, date YYYY-MM-DD, datetime ISO 8601, select one option, multi_select a list, user a member ID. select and multi_select need options. New fields go last.

    Write
  • Update Custom Fieldupdate_crm_field

    Change a custom field's label, description, options, group, position or rules (validation, condition, options_by; each replaces the stored one). Turning unique on is refused (409) while records share a value; the answer lists them. field_type changes only when no stored value is lost: string<->long_text (back only if every value fits 2,000 chars), url/email/phone/select->string or long_text, select<->multi_select (back only if no record has 2+), number<->currency<->percent; others are refused with the reason.

    Write
  • Delete Custom Fielddelete_crm_field

    Remove a custom field definition. Values already stored on records are kept (re-creating the field brings them back). Contact fields used by active workflows cannot be deleted.

    Write
  • Create Field Groupcreate_crm_field_group

    Add a field group (a section on record pages) to contacts, companies, deals or tasks. It goes last; put fields in it with update_crm_field group_id.

    Write
  • Update Field Groupupdate_crm_field_group

    Rename a field group or change its place among the object's groups.

    Write
  • Delete Field Groupdelete_crm_field_group

    Delete a field group. Its fields and their values stay, ungrouped.

    Write

Pipelines

10 tools
  • List Pipelineslist_pipelines

    List deal pipelines with their ordered stages (name, type open/won/lost, win probability, color) and visibility. One pipeline is the default.

    Read
  • Create Pipelinecreate_pipeline

    Create a deal pipeline. Pass stages in order (each with name, and optionally kind open/won/lost, probability 0-100, color); without stages a seven-stage starter set is created (Lead, Qualified, Meeting booked, Proposal, Negotiation, Won, Lost). Include at least one won and one lost stage so deals can close. Stage IDs are in the response and in list_pipelines. A team can have at most 50 pipelines.

    Write
  • Update Pipelineupdate_pipeline

    Rename a pipeline, change its position in the list, make it the default (is_default: true), or set its rules (admins; see rules_reference in get_crm_schema).

    Write
  • Delete Pipelinedelete_pipeline

    Delete a pipeline and its stages. Refused while the pipeline has deals (deals in Recently deleted included), or if it is the team’s only pipeline.

    Write
  • Add Pipeline Stagecreate_pipeline_stage

    Add a stage to a pipeline. Without position it goes before the won / lost stages.

    Write
  • Update Pipeline Stageupdate_pipeline_stage

    Change a stage's name, type (open/won/lost), win probability or color. Changing the type updates the status of deals already in the stage, so it needs deals:write as well as crm:write.

    Write
  • Delete Pipeline Stagedelete_pipeline_stage

    Delete a stage. If deals are in it, pass move_deals_to with another stage in the same pipeline and they move first; moving them needs deals:write as well as crm:write.

    Write
  • Reorder Pipeline Stagesreorder_pipeline_stages

    Set the order of a pipeline's stages. Pass every stage ID in the new order.

    Write
  • Get Pipeline Accessget_pipeline_access

    Show who can see a pipeline: visibility (everyone or restricted) and, when restricted, the user IDs and team (member group) IDs granted access. Workspace admins and the owner always see every pipeline. Pipeline IDs come from list_pipelines.

    Read
  • Set Pipeline Accessset_pipeline_access

    Set who can see a pipeline, its stages and its deals. visibility everyone opens it to the whole workspace; restricted limits it to the listed user IDs and team (member group) IDs, replacing any earlier list, and an empty list hides it from everyone except workspace admins and the owner. Only workspace admins can change this. Pipeline IDs come from list_pipelines, group IDs from list_member_groups, user IDs from get_crm_schema.

    Write

Saved views & lists

16 tools
  • List Viewslist_views

    A list's saved views (shared, and yours), and filter_fields: the fields and operators its filters take.

    Read
  • List View Recordslist_view_records

    The records a saved view holds now, as you'd see them. Deal views span your pipelines unless pipeline_id is set.

    Read
  • Create Viewcreate_view

    Save a view of a list, shared (editors, admins) or private. Filter fields: see list_views. Linked contact.*, company.* and deal.* match when any linked record does; not_equals and is_empty then mean none does.

    Write
  • Update Viewupdate_view

    Rename, share or hide (its creator only) or reorder a saved view, or change config keys: those sent replace the stored ones, the rest stay.

    Write
  • Delete Viewdelete_view

    Delete a saved view of any list. Its records stay.

    Write
  • List Listslist_lists

    Static lists of contacts or companies, with member counts. In any filter, { field: 'list', operator: 'equals', value: <list id> } selects a list's members.

    Read
  • List List Memberslist_list_members

    A list's contacts or companies, a page at a time, as you'd see them.

    Read
  • Create Listcreate_list

    Create a static list of contacts or companies (names are unique per object). Add records with add_to_list.

    Write
  • Update Listupdate_list

    Rename a list or change its description (null clears it). Its members stay.

    Write
  • Delete Listdelete_list

    Delete a list (admins, or the person who made it). Its records stay.

    Write
  • Add To Listadd_to_list

    Add up to 10,000 contacts or companies to a list. Records you cannot see, or in Recently deleted, come back as skipped.

    Write
  • Remove From Listremove_from_list

    Remove up to 10,000 records from a list. The records themselves stay.

    Write
  • List Contact Viewslist_contact_views

    List saved views of the Contacts table: columns, pinned columns, AND/OR filter groups and sort.

    Read
  • Create Contact Viewcreate_contact_view

    Save a team view of the Contacts table (create_view with object contacts can make it private). Columns, filter fields, operators and values: list_views with object contacts (columns also take cf:<field_name>). Unknown fields or operators are rejected.

    Write
  • Update Contact Viewupdate_contact_view

    Rename a saved contact view, change its position, or change config keys (same shape as create_contact_view): those sent replace the stored ones, the rest stay.

    Write
  • Delete Contact Viewdelete_contact_view

    Delete a saved contact view. Contacts are not affected.

    Write

Contacts

14 tools
  • List Contactslist_contacts

    List contacts for the team. Supports pagination, status filtering, free-text search (email, name, company), and filtering by tag slug or lead score. Returns contacts with their tags and lead_score (read-only, from the active scoring model; null when never scored).

    Read
  • Get Contactget_contact

    Get a single contact by ID, including its tags, custom fields, engagement counts, activity (last contacted, last and next activity) and emails (every address, the primary first). include_associations adds every linked company with its labels (company_id is the primary).

    Read
  • Create Contactcreate_contact

    Create a new contact. Email is required and must be unique within the team. Returns 409 if a contact with the email already exists.

    Write
  • Update Contactupdate_contact

    Update fields on an existing contact (name, phone, company, job title, email, status, qualification status, lifecycle stage, lead status, owner, linked company, custom fields, other email addresses). Only provided fields are changed; custom_fields merges into the stored values and null removes one. enrich: true fills empty fields (job title, LinkedIn URL) from the connected enrichment provider.

    Write
  • List Contact Tagslist_contact_tags

    List the tag library shared by contacts, companies and deals (name, slug, color, description).

    Read
  • Create Contact Tagcreate_contact_tag

    Create a tag for contacts, companies and deals. Slug is derived from the name if not provided.

    Write
  • Add Tag to Contactadd_contact_tag

    Assign an existing tag to a contact, identified by tag_id or tag_slug.

    Write
  • Remove Tag from Contactremove_contact_tag

    Remove a tag from a contact, identified by tag_id or tag_slug.

    Write
  • Import Contactsimport_contacts

    Import contacts (200 or fewer rows per call keeps responses quick). A row whose email exists follows duplicate_mode: fill_empty (default) fills blanks, overwrite replaces, skip leaves it. Bad rows are left out (errors). A custom value breaking its field's rules is left out (warnings); the record still imports. custom_fields keys must be defined contact fields unless create_missing_fields is true (needs crm:write). A workflow runs only with workflow_id (workflows:write; an active Contact added or form trigger workflow, which can email them). Rows with external_id can later be named by contact_external_id. Returns the import ID (get_contact_import) and counts; a failed call that already saved rows also returns import_id.

    Outbound
  • List Contact Importslist_contact_imports

    List contact imports, newest first, with status (processing, completed, failed, undoing, undone), duplicate mode, row counts (total, created, updated, unchanged, skipped, errors), workflow runs started, who started it and when it finished or was undone.

    Read
  • Get Contact Importget_contact_import

    Get one contact import by ID (from import_contacts or list_contact_imports): its counts and status plus the row-level errors (row number and message) and the tag it applied.

    Read
  • Merge Contactsmerge_contacts

    Merge two contacts. The primary survives and takes the secondary’s tags, notes, tasks, deals, meetings, bookings, sequence enrollments (a shared sequence stops the secondary’s), emails and calls. The secondary is archived and can’t be merged again or be a primary. Each field keeps the primary’s value, the secondary filling gaps, unless values names the winner (null clears). Returns the primary.

    Write
  • Merge Recordsmerge_records

    Merge two contacts, companies or deals: everything linked to secondary_id moves to primary_id, which survives; a merged company or deal goes to Recently deleted (a deal keeps its own pipeline and stage). Each field keeps the primary’s value, or the secondary’s when blank, unless values names the winner (null clears one). merge_contacts does the same for contacts. Returns the merged record.

    Write
  • Get Prospecting Queueget_prospecting_queue

    The caller's Prospecting queue (as on the Prospecting page): one row per contact, or task without one, most urgent first. Reasons: reply (a contact they emailed in the last 60 days wrote back in the last 7, unanswered; with a snippet), task_overdue / task_due (open tasks due by end of today), new_lead (owned, created in 14 days, never contacted), open (their emails opened in 7 days), stale (owned, not contacted for the stale days). new_lead and stale follow settings.working_lead_statuses. Rows carry the contact's open deal and sequence. Also meetings (today, needs_outcome), today (tasks_completed, emails_sent, calls, meetings_booked), snoozed contacts and counts per lead status. Tasks need tasks:read.

    Read

Companies

7 tools
  • List Companieslist_companies

    List companies. Filter by search (name or domain), exact domain, owner, tag or parent company.

    Read
  • Get Companyget_company

    Get a company with its custom fields, tags, parent_company_id, number of linked contacts, open deal value and activity (last contacted, last and next activity, counts).

    Read
  • Create Companycreate_company

    Create a company. The domain (e.g. acme.com) is unique per team and lets contacts with matching emails be linked automatically.

    Write
  • Update Companyupdate_company

    Update a company. Only fields you pass change; null clears a field. custom_fields merges into existing values. A parent_company_id that is the company itself or one of its descendants is refused. enrich: true fills empty fields (industry, employees, location, LinkedIn, logo) from the connected enrichment provider.

    Write
  • Add Tag to Companyadd_company_tag

    Add a library tag to a company by tag_id or tag_slug; a no-op if already there.

    Write
  • Remove Tag from Companyremove_company_tag

    Remove a tag from a company by tag_id or tag_slug.

    Write
  • Import Companiesimport_companies

    Import up to 1,000 companies per call. A row whose external_id or domain matches an existing company follows duplicate_mode: update (default) merges the values sent, skip leaves it. Bad rows are left out (errors). A custom value breaking its field's rules is left out (warnings); the record still imports. custom_fields keys must be defined company fields unless create_missing_fields is true (needs crm:write). Returns counts and the Orbit id of every row, so deals can link by company_external_id or company_id; a call that fails part-way returns partial with the rows already written. Counts toward the hourly budget of 100,000 imported rows.

    Write

Deals

27 tools
  • List Dealslist_deals

    List deals with their company and contacts. Filter by pipeline, stage, status (open, won, lost), owner, company, contact, tag or name search, deal_type, by when they closed (closed_after / closed_before, on closed_at) to find the deals won or lost in a period, and by renewal_date (renewal_after / renewal_before) to find renewals coming up. Each deal has amount_home, its amount in home_currency.

    Read
  • Get Dealget_deal

    Get a deal: stage, status and closed_at, amount and amount_home (in home_currency; closed deals keep their closing rate), deal_type, recurring_amount/interval, renewal_date, renewed_from_deal_id, company, contacts, tags, lost_reason, custom fields, activity, days_to_close, days_in_stage and stage_times. include_associations adds all companies and contact/company labels; include_splits adds who shares its credit.

    Read
  • Create Dealcreate_deal

    Create a deal. With only stage_id, that stage's pipeline is used; without either, the default pipeline's first stage. Currency defaults to the team's deal setting. Link contacts with contact_ids. When the team requires a lost reason, pass lost_reason to create a deal in a lost stage. Missing required fields answer 422 required_on_create or stage_required_fields with details.missing.

    Write
  • Clone Dealclone_deal

    Copy a deal within its pipeline: amount, currency, close date, owner, company, contacts (primary kept), description and custom fields, named "Copy of …" unless name is passed. It starts in the original stage if open, else the first open stage (stage_id picks another). Notes, activity, tasks, files, history, lost reason and close time are not copied; records you cannot see are left off; over 200 contacts cannot be cloned. Returns the new deal.

    Write
  • Update Dealupdate_deal

    Update a deal. stage_id moves it (status follows the stage; "Deal Stage Changed" workflows run); another pipeline needs pipeline_id and stage_id; a lost stage may need lost_reason. Pipeline rules may refuse with 422: stage_required_fields (send details.missing with stage_id), stage_skip_not_allowed (move to details.next_stage), stage_backward_not_allowed, closed_deal_locked (admins may retry with override_rules); stage_approval_required (ask with deal_approval). splits replaces who shares its credit (saved after the other fields; 409 splits_disabled while the deal setting deal_splits is off).

    Write
  • Add Contact to Dealadd_deal_contact

    Link a contact to a deal. With is_primary true it becomes the primary contact and the previous primary contact loses that role. Adding a contact that is already linked keeps its role.

    Write
  • Remove Contact from Dealremove_deal_contact

    Unlink a contact from a deal. The contact itself is not changed.

    Write
  • Set Associationset_association

    Link two records, or change an existing link: a contact and a company (contact_company), a deal and a contact (deal_contact), or a deal and a company (deal_company). labels (keys or names from get_crm_schema association_labels) replace the link's labels; [] clears them. is_primary true makes it the primary (the record's company, or the deal's primary contact); the first company linked becomes primary. Returns the contact's companies, the deal's companies, or the deal.

    Write
  • Remove Associationremove_association

    Unlink two records (see set_association for the types). Removing the primary makes the next one primary. Neither record is changed otherwise.

    Write
  • Add Tag to Dealadd_deal_tag

    Add a library tag to a deal by tag_id or tag_slug; a no-op if already there.

    Write
  • Remove Tag from Dealremove_deal_tag

    Remove a tag from a deal by tag_id or tag_slug.

    Write
  • List Deal Approvalslist_deal_approvals

    With deal_id: that deal's approval requests, newest first (status, stage, who asked and decided; pending ones list approvers, can_decide and can_cancel). Without: the requests waiting for you to approve or reject.

    Read
  • Request or Decide Deal Approvaldeal_approval

    Stage approvals: a stage with approval_required answers a move there with 422 stage_approval_required. request (stage_id, note) asks its approvers, who are notified. approve or reject (approval_id, note) is for an approver other than whoever asked; approving moves the deal when it still can (moved). cancel withdraws a pending request (whoever asked, or an admin).

    Write
  • List Productslist_products

    List the product library: name, SKU, description, unit_price, currency and recurring_interval. Search by name or SKU; archived: exclude (default), include or only.

    Read
  • Save Productsave_product

    Create a product (no product_id: name and unit_price required; currency defaults to the workspace's deal currency) or change one. archived: true archives it (it can't be added to deals any more), false restores it. A SKU is unique among products that aren't archived.

    Write
  • List Deal Line Itemslist_deal_line_items

    A deal's line items (quantity, unit_price, discount, recurring_interval, amount) in the deal's currency, their totals, and whether the deal amount follows them (amount_from_line_items).

    Read
  • Update Deal Line Itemsupdate_deal_line_items

    Add, change and remove a deal's line items in one call. add: { product_id } copies the product (a product priced in another currency needs unit_price in the deal's), or { name, unit_price } for a one-off line. amount_from_line_items: true keeps the deal amount equal to the lines' total. All checked before anything is written; returns the lines and totals.

    Write
  • List Quoteslist_quotes

    List quotes, or get one with quote_id: lines, totals, terms, expires_at, status (draft, open, accepted, void; display_status adds expired), public_url once shared, views and who accepted. Filter by deal_id or status.

    Read
  • Create Quotecreate_quote

    Make a quote from a deal's line items (copied now; later deal changes don't alter it), with the workspace's default terms and expiry unless given. publish: true shares it at once and returns public_url to send the buyer, who can accept it there; include_payment_link adds a Stripe payment link in the workspace's own Stripe account.

    Outbound
  • Update Quoteupdate_quote

    Change a draft (title, terms, expires_at, include_payment_link; refresh_items: true re-copies the deal's line items), then share: true shares it (public_url works; its payment link is made in Stripe). void: true voids a shared or accepted quote instead: its page says it is no longer available and its payment link is switched off.

    Outbound
  • Import Dealsimport_deals

    Import up to 1,000 deals per call, each in a pipeline and stage named by id or name (the stage decides open, won or lost), linked to a company and contacts (the first contact is primary). A row whose external_id matches a deal follows duplicate_mode: update (default) or skip; with no pipeline or stage it stays where it is. Closed deals keep their closed_at (or close_date); created_at backdates. No "Deal Stage Changed" workflows run. Bad rows are left out (errors); a missing contact is a warning. A custom value breaking its field's rules is left out (warnings); the record still imports. Returns counts and the Orbit id of every row; a call that fails part-way returns partial with the rows already written. Counts toward the hourly budget of 100,000 imported rows.

    Write
  • Get Deal Stage Historyget_deal_history

    List a deal's stage changes, newest first: the stage it left (null for its creation), the stage it entered, who moved it (the credential's owner for API moves; null for workflow and import moves) and when. Deal IDs come from list_deals.

    Read
  • Get Pipeline Summaryget_pipeline_summary

    Summarize a pipeline's deals: per stage the deal count, total amount and amount weighted by win probability; totals for open, won and lost deals; and how many open deals are stale under the team's stale_after_days setting. Without pipeline_id the default pipeline is used. Counts up to 10,000 deals; meta.truncated says when there were more.

    Read
  • Get Sales Reportget_sales_report

    One Reports page report under the caller's record access. pipeline: open deals per stage (count, amount, weighted). win_rate: won / (won + lost) closed in the period, per owner and period. conversion: per stage, deals entering it and how many reached the next stage or won. stage_time: mean and median seconds per stage. deal_flow: created and won per period and source. activity: emails, calls, meetings and tasks done per rep. response: contact creation to first human outreach, per owner. renewals: won deals renewing in the period, by month and state, with MRR/ARR. recurring: MRR/ARR won by deal_type, in force, and past renewal. Amounts in the team currency; rates are fractions. Needs deals:read (activities:read for activity, contacts:read for response).

    Read
  • Ask Report Questionask_report_question

    Answer a reporting question in plain English ("win rate by source last quarter", "calls per rep this month", "deals created per month this year") as a table: Orbit plans the report with AI from field names only, then runs it on read-only reporting views under your record access. Returns the title, the spec it ran, the rows and what it counted. Deals, contacts, companies, tasks and activities, each needing its read scope. Uses 1 AI credit per answer; a question it cannot answer is free.

    Outbound
  • Get Goalsget_goals

    Sales goals and attainment for a period, with the caller's record access applied: per person and team, the actual (the sales reports' own won revenue, deals won, calls or meetings), the goal and attainment (actual / goal), ranked as a leaderboard. Goals are per month or fiscal quarter; aligned is false for a range that isn't whole months. Needs deals:read (activities:read for calls and meetings).

    Read
  • Get Forecastget_forecast

    The forecast for a month or fiscal quarter, with the caller's record access applied. Per person and team: closed (won in the period), the open deals expected to close in it per forecast category, weighted, the revenue goal, system (closed + commit), the current submission and admin override, and accuracy once the period has ended; plus every submission and override for the period, newest first. Amounts in the team currency. Needs deals:read.

    Read

Tasks

5 tools
  • List Taskslist_tasks

    List tasks, soonest due first. Filter by status (open, done), task type, assignee, linked contact / company / deal, or due date range.

    Read
  • Create Taskcreate_task

    Create a task, optionally linked to a contact, company and/or deal. due_at and the assignee default from the team's task settings when left out. A repeating task recurs when completed.

    Write
  • Update Taskupdate_task

    Update a task. Set status to "done" to complete it (a repeating one recurs) or "open" to reopen it.

    Write
  • List Task Typeslist_task_types

    The workspace's task types: key (call, email, todo or custom_*), label, icon, hidden (can't be set; tasks keep it). Admins edit them in Settings → Tasks.

    Read
  • Delete Taskdelete_task

    Delete a task. It moves to Recently deleted, where a workspace admin can restore it; linked records are not changed.

    Write

Notes

4 tools
  • List Noteslist_notes

    List notes on one contact, company or deal (pass one ID), or find one by external_id and external_source; pinned first. Or a note's or activity's comments (note_id / activity_id).

    Read
  • Create Notecreate_note

    Add a note to one contact, company or deal, or comment on a note or activity (note_id / activity_id). Mention members as `@[Name](user:USER_ID)`.

    Write
  • Update Noteupdate_note

    Edit a note's text or pin / unpin it.

    Write
  • Delete Notedelete_note

    Delete a note from its contact, company or deal. It moves to Recently deleted, where a workspace admin can restore it.

    Write

Activity & timeline

12 tools
  • Get Timelineget_timeline

    A record's whole history, newest first: form submissions, meetings booked, sequence emails and SMS, emails sent from Orbit, dialer calls, logged activities, notes, tasks and (deals) stage changes. Pass exactly one of contact_id, company_id or deal_id; a company's timeline includes its contacts' activity. Returns items with a type, occurred_at, title, summary and the source row, plus next_cursor: pass it back as `before` for the next page.

    Read
  • Summarize Recordsummarize_record

    AI summary of a contact, company or deal: 3-6 sentences, key facts (last touch, next activity, open deals, recent calls and meetings) and 2-4 next steps, each citing the timeline items it rests on. An unchanged record returns its saved summary free; a new one uses 1 AI credit. Needs the object's read scope; reads only what your scopes reach.

    Outbound
  • List Activitieslist_activities

    List logged activities (emails, calls, meetings, SMS and messages recorded with log_activity or import_activities, and emails Orbit saved from members' mailboxes) on a contact, company or deal, newest first, with type, direction, since and until filters. For everything on a record, including what Orbit did itself, use get_timeline.

    Read
  • Get Activityget_activity

    Get one logged activity by ID, including its body, participants, links and origin.

    Read
  • Log Activitylog_activity

    Record an email, call, meeting, SMS or message that happened outside Orbit on a contact, company or deal, at the time it happened. Nothing is sent. Name the record by id, by contact_email / company_domain, or by its id in another system (contact_external_id with external_source). The actor defaults to you; a migrated activity's original author goes in actor_email / actor_name. external_source and external_id make the row recognisable to import_activities later.

    Write
  • Update Activityupdate_activity

    Edit a logged activity: any field but its type. Pass null for contact_id, company_id or deal_id to unlink a record (at least one link must remain). Emails synced from a Gmail or Outlook mailbox are read-only.

    Write
  • Delete Activitydelete_activity

    Delete a logged activity permanently. Emails synced from a Gmail or Outlook mailbox are read-only.

    Write
  • Import Activitiesimport_activities

    Import history in bulk (notes, tasks, emails, calls, meetings, SMS, messages), up to 500 rows per call. Name records by id, contact_email, company_domain or source ids (contact_/company_/deal_external_id). With external_source and each row's external_id a re-run updates (default) or skips its earlier rows, never duplicates. Rows keep their timestamps and authors. Notes and tasks also need notes:write / tasks:write. Nothing runs and nothing is sent. Bad rows are left out (errors). Returns the import ID (get_activity_import, undo_activity_import) and counts.

    Write
  • List Activity Importslist_activity_imports

    List activity imports, newest first, with status (processing, completed, failed, undone), source, counts (total, created, updated, skipped, errors), who started it and when.

    Read
  • Get Activity Importget_activity_import

    Get one activity import by ID: its counts and status plus the row-level errors (row number and message).

    Read
  • Undo Activity Importundo_activity_import

    Delete everything an activity import created: its notes, tasks, logged activities and files. Rows it only updated stay as they are. Team admins only. A result with done false means more rows remain: call again.

    Write
  • List Record Changeslist_record_changes

    List field changes on a contact, company, deal or task, newest first: field (e.g. stage_id, custom_fields.tier), old_value, new_value, actor (user_id; app_id for an app), source (dashboard, api, mcp, import, workflow, system) and time; kind deleted / restored / merged marks those moves. Filter by field, source or actor (a user ID, or none); meta.next_cursor pages.

    Read

Files

4 tools
  • List Fileslist_files

    List the files on a contact, company or deal (or attached to one logged activity or note), newest first, with name, type, size and who added them. Use get_file for a download link.

    Read
  • Get Fileget_file

    Get one file's record with a download_url that works for five minutes and downloads the file as an attachment.

    Read
  • Import File From URLimport_file_from_url

    Fetch a file from an HTTPS URL (e.g. a signed download link from another CRM) and attach it to a contact, company or deal, optionally to one of their logged activities or notes. Public hosts only, 25 MB at most; documents, images, archives, audio and video. The URL is kept as source_url. Name the record by id, by contact_email / company_domain, or by its id in another system (contact_external_id with external_source). Give external_source and external_id so a re-run is refused as a conflict instead of storing a second copy.

    Outbound
  • Delete Filedelete_file

    Delete a file permanently: its record and the stored bytes.

    Write

Team

6 tools
  • Get Workspaceget_workspace

    Identify the workspace this credential belongs to and who it acts as: the workspace (team) ID, name and slug with team:read; the user ID, email and name with user:read; the credential type, its scopes and the OAuth app it belongs to. Call it to learn the team_id that records and webhooks carry, or to label a connection.

    Read
  • List Teamslist_member_groups

    List the teams (member groups) inside the workspace: each with its ID, name and members (user IDs and names). Group IDs are used by set_pipeline_access; user IDs match team_members in get_crm_schema.

    Read
  • Create Teamcreate_member_group

    Create a team (member group) of workspace members, optionally with its first members. user_ids come from team_members in get_crm_schema; people outside the workspace are rejected. Workspace admins only; a workspace can have up to 100 teams.

    Write
  • Rename Teamupdate_member_group

    Rename a team (member group). group_id comes from list_member_groups. Workspace admins only.

    Write
  • Delete Teamdelete_member_group

    Delete a team (member group). Its members stay in the workspace; a pipeline restricted to it stays restricted to its other teams and people. Workspace admins only.

    Write
  • Set Team Membersset_member_group_members

    Replace the members of a team (member group) with the given user IDs: people not listed are removed, new ones added. user_ids come from team_members in get_crm_schema; people outside the workspace are rejected. Workspace admins only.

    Write

Workflows

13 tools
  • Get Workflow Schemaget_workflow_schema

    Describe how to build a workflow: every trigger and node type with its provider, the config fields each needs, the outputs it exposes to later nodes, plan requirements, the graph rules, and app_actions: the actions of the apps installed in this workspace, each usable as a destination node with provider app_action and config { app_id, action_id, action_key, inputs }. Read this before create_workflow.

    Read
  • List Workflowslist_workflows

    List workflows with status (draft, active, paused), trigger, node and run counts, queued submissions and whether unpublished changes exist. Filter by status or name.

    Read
  • Get Workflowget_workflow

    Get a workflow with its trigger config, nodes (type, provider, config; credentials such as webhook headers are shown as [REDACTED]) and edges, its status, and whether it has unpublished changes. Use the returned updated_at as expected_updated_at when updating.

    Read
  • Create Workflowcreate_workflow

    Create a draft workflow, optionally with its graph: nodes keyed by names you choose plus the edges joining them (always send both). One trigger node connected to at least one action node. Node types and config: get_workflow_schema. Activate with activate_workflow. Nodes that write CRM data need the matching write scope (contacts, companies, deals, tasks, notes); nodes that send lead data out of Orbit need contacts:read. [REDACTED] values from get_workflow cannot be copied: send the real value.

    Write
  • Update Workflowupdate_workflow

    Rename a workflow, change its description or trigger config, or replace its graph (nodes and edges together; nodes keeping their ID keep their history). A [REDACTED] credential from get_workflow keeps its value only in a node whose ID, type, provider and URLs are unchanged; elsewhere send the real value. Graph changes stay a draft until activate_workflow. expected_updated_at from get_workflow refuses the save if it changed meanwhile.

    Write
  • Activate Workflowactivate_workflow

    Validate and publish a workflow so it runs on its trigger. A draft becomes active; a paused workflow resumes (process_queue says what happens to submissions queued while it was paused: all, skip or none); an active workflow with unpublished changes publishes them. Returns the validation problems when the graph is not ready.

    Write
  • Pause Workflowpause_workflow

    Pause an active (published) workflow so new trigger events stop starting runs. Runs already in progress finish. Activate it again with activate_workflow. A draft that was never activated cannot be paused.

    Write
  • Run Workflowrun_workflow

    Run an active workflow now. With contact_ids, each contact becomes a run (the trigger must be Contact Added or Form Submission); the same contact_ids with the same idempotency_key never run twice (already_started counts them). With trigger_data, the workflow runs once with that data; every call starts a new run, and the response carries a trigger_key to find it with list_workflow_runs. Runs execute in the background and can send email, call integrations and change CRM data.

    Outbound
  • List Workflow Runslist_workflow_runs

    List a workflow's runs, newest first, with status (running, completed, failed, cancelled), trigger data and error. Use get_workflow_run for the per-node steps.

    Read
  • Get Workflow Runget_workflow_run

    Get one workflow run with every node step: status, input, output, error and timing. Run IDs come from list_workflow_runs or run_workflow.

    Read
  • List Agent Templateslist_agent_templates

    List AI agent templates (the instructions (system_prompt), qualification criteria and model an agent node runs with): the team's own plus shared ones. Template IDs go in an agent node's config.

    Read
  • Create Agent Templatecreate_agent_template

    Create an AI agent template with a instructions (system_prompt), qualification criteria (an object of your own shape) and a model. Use it from an agent node via its template ID.

    Write
  • Update Agent Templateupdate_agent_template

    Change an agent template's name, description, instructions (system_prompt), criteria or model. Only fields you pass change. Shared templates owned by other teams cannot be changed.

    Write

Forms & submissions

5 tools
  • List Formslist_forms

    List forms for the team with pagination and optional status filtering.

    Read
  • Get Formget_form

    Get a single form by ID, including its configuration and settings.

    Read
  • List Form Submissionslist_form_submissions

    List submissions for a form. Supports pagination, date-range filtering (since/until ISO dates), and status filtering (completed, partial).

    Read
  • Update Form Submissionupdate_form_submission

    Change answers on a form submission. fields is merged into the stored answers: keys you name are overwritten, the rest are kept. Pass expected_updated_at (the submission's updated_at) to refuse the change with 409 if someone edited it since.

    Write
  • Get Form Analyticsget_form_analytics

    Get a form's analytics for the last N days (default 30, max 90): views, completed and partial submissions and the conversion rate, all-time totals, a daily series, and views by traffic source, device and country. The daily series and breakdowns come from nightly rollups and end with yesterday (UTC).

    Read

Scheduling & meetings

10 tools
  • List Meetingslist_meetings

    List meetings for the team. Filter by status, start-time range (since/until ISO dates), or scheduling page.

    Read
  • Get Meetingget_meeting

    Get a single meeting by ID: attendee, timing and status, plus its Fathom or Fireflies recordings (the notetaker summary, action items and AI notes). include_transcript adds the transcript text.

    Read
  • Summarize Meetingsummarize_meeting

    AI notes of a meeting’s Fathom or Fireflies recording: a summary, key points and action items with owners and due dates. Saved notes return free; new ones use 1 AI credit. Turn an action item into a task with create_task.

    Outbound
  • Update Meetingupdate_meeting

    Update a meeting: change its status (e.g. cancel, mark completed or no-show) and/or set internal notes. Cancelling notifies the attendee and updates the host’s connected calendar.

    Outbound
  • List Scheduling Pageslist_scheduling_pages

    List scheduling (booking) pages for the team, with optional status filtering.

    Read
  • Get Scheduling Pageget_scheduling_page

    Get a scheduling page by ID, including its event types.

    Read
  • List Event Typeslist_event_types

    List event types (meeting durations/locations) configured on a scheduling page.

    Read
  • List Availability Scheduleslist_availability_schedules

    List availability schedules (working hours and timezones) for the team, optionally filtered by user.

    Read
  • Get Available Slotsget_available_slots

    Get bookable time slots for a host on a given date — working hours intersected with their connected calendar free/busy. Pass event_type_id (from list_event_types) so duration, buffers, minimum notice, and round-robin/group rules apply. Requires the team to have a published scheduling page. Returns { available_slots: [{ start, end }] } in UTC ISO 8601.

    Read
  • Book Meetingbook_meeting

    Book a meeting on a host’s calendar. Find the scheduling page and event type first (list_scheduling_pages, list_event_types), then use get_available_slots and pass one of its returned slots as start/end — booking a taken or invalid slot returns 409. Creates the meeting, sends calendar invites to the host and attendee, and triggers configured workflows.

    Outbound

Sequences

16 tools
  • List Sequenceslist_sequences

    List email sequences for the team, with optional status filtering.

    Read
  • Get Sequenceget_sequence

    Get a sequence by ID, including its steps.

    Read
  • List Sequence Stepslist_sequence_steps

    List the steps of a sequence in order (emails, delays, conditions).

    Read
  • Get Sequence Analyticsget_sequence_analytics

    Get performance analytics for a sequence (sends, opens, clicks, replies, unsubscribes).

    Read
  • List Sequence Enrollmentslist_sequence_enrollments

    List contacts enrolled in a sequence, with optional enrollment-status filtering.

    Read
  • Enroll Contacts in Sequenceenroll_contacts_in_sequence

    Enroll one or more contacts (by contact ID, max 100) into a sequence so they start receiving its emails on the sequence schedule. Contacts already enrolled are skipped.

    Outbound
  • List Sequence Unsubscribeslist_sequence_unsubscribes

    List emails unsubscribed from sequences, with optional email search.

    Read
  • Add Sequence Unsubscribesadd_sequence_unsubscribes

    Add emails (max 100) to the sequence unsubscribe list, either for all sequences or a specific one. Active enrollments for those emails stop sending.

    Write
  • Create Sequencecreate_sequence

    Create a draft email/SMS sequence; nothing is sent. Then add_sequence_step, activate_sequence and enroll_contacts_in_sequence. Exit criteria are set with update_sequence.

    Write
  • Update Sequenceupdate_sequence

    Change a sequence’s name, description, sender, settings or exit criteria. On an active sequence they apply to the next emails it sends. Status changes through activate_sequence and pause_sequence.

    Write
  • Add Sequence Stepadd_sequence_step

    Append an email, SMS or task (call, LinkedIn, to-do) step to a sequence (at most 100 steps). Use reorder_sequence_steps to move it. On an active sequence a new step can send once saved; edits to published steps wait for activate_sequence.

    Outbound
  • Update Sequence Stepupdate_sequence_step

    Change a step’s type, delay, subject, body or SMS text; only the fields you pass change. On an active sequence a new step can send once saved; edits to published steps wait for activate_sequence.

    Outbound
  • Delete Sequence Stepdelete_sequence_step

    Remove one step from a sequence.

    Write
  • Reorder Sequence Stepsreorder_sequence_steps

    Put a sequence’s steps in a new order. Pass every step ID exactly once, first step first.

    Write
  • Activate Sequenceactivate_sequence

    Start a sequence, or publish the edits of an active one, after checking its steps, merge fields and senders. It then emails and texts everyone enrolled. Calling it again republishes.

    Outbound
  • Pause Sequencepause_sequence

    Pause an active sequence so it stops sending. Pausing a paused sequence changes nothing.

    Write

Email templates

5 tools
  • List Email Templateslist_email_templates

    List the email templates (whole emails with a subject) and snippets (short blocks inserted with a /shortcut) the caller can use: everything shared with the workspace plus their own personal ones. Filter by kind, visibility or a name search.

    Read
  • Get Email Templateget_email_template

    Get one email template or snippet: name, subject, body HTML with its merge fields, shortcut, visibility and who changed it last.

    Read
  • Create Email Templatecreate_email_template

    Create an email template (kind "template": name, subject, body) or a snippet (kind "snippet": name, body, optional shortcut typed after "/" in the composer). Personal by default; visibility "team" shares it with the workspace. Nothing is sent. Merge fields, written {{ contact.first_name }} with an optional fallback {{ contact.first_name | there }}: contact.first_name, last_name, full_name, email, phone, company, job_title or a custom field; company.name, domain, industry, location, phone; deal.name, amount, stage, close_date; sender.first_name, full_name, email, meeting_link. Anything else is refused.

    Write
  • Update Email Templateupdate_email_template

    Change an email template or snippet: rename it, rewrite its subject or body, change a snippet's shortcut, or share it with the workspace (visibility "team") or make it personal. The new content replaces the old. Merge fields as in create_email_template; unknown ones are refused.

    Write
  • Delete Email Templatedelete_email_template

    Permanently delete an email template or snippet. Sequence steps and emails already written from it keep their own copy of the content.

    Write

Emails

6 tools
  • List Contact Emailslist_contact_emails

    List the one-to-one emails the team sent contacts, newest first, with sender, recipient, subject and status. A person whose record access is limited must pass contact_id. get_contact_email has the message.

    Read
  • Get Contact Emailget_contact_email

    Get one email sent to a contact, including its message (HTML, and the Markdown it was written in when available) and delivery status.

    Read
  • Send Contact Emailsend_contact_email

    Send one email to an existing contact from the connected person's address on the workspace's sending domain (never from their Gmail or Outlook mailbox), with an unsubscribe link. Unsubscribed, bounced or blocked contacts are refused, sends are capped hourly, and merge fields like {{ contact.first_name }} are filled in. Retry with the same idempotency_key so it isn't sent twice. It can't be unsent.

    Outbound
  • List Inbox Conversationslist_conversations

    List the Inbox conversations (email threads with contacts) the person can see: their own mailbox, what is assigned to them and mail to the team address. Newest first, with assignee and open/closed status. get_conversation has the messages.

    Read
  • Get Inbox Conversationget_conversation

    Get one Inbox conversation with its messages (oldest first) and its assignment and status history.

    Read
  • Assign or Close Conversationupdate_conversation

    Assign an Inbox conversation to a member ("me", a member ID, or null to unassign) and/or set status open or closed. The assignee is notified and must be able to see the contact.

    Write

Dialer

25 tools
  • Get Dialer Settingsget_dialer_settings

    Read the team's power dialer settings (defaults when none are saved): caller_id, ring_timeout_seconds, auto_advance_delay_seconds, wrap_up_seconds, voicemail_mode, machine_detection, record_calls, recording_announcement, skip_recently_called_hours, max_attempts_per_contact, default_country, transcribe_calls, ai_call_feedback, ai_feedback_focus, require_call_outcome. update_dialer_settings' input schema gives each one's meaning and range. The AI cannot place calls: a person dials from the Dialer page using these settings.

    Read
  • Update Dialer Settingsupdate_dialer_settings

    Change one or more dialer settings; only the keys passed change and unknown keys are rejected. caller_id is the workspace default number for reps without one assigned (assign_phone_number): one of list_phone_numbers, null clears it. voicemail_mode drop and hangup need machine_detection on; transcribe_calls needs record_calls and machine_detection on, and ai_call_feedback needs transcribe_calls on: turning a parent off is refused unless its dependents go off in the same call. This configures how a person dials; the AI cannot place calls, start a session or buy numbers.

    Write
  • List Caller IDslist_caller_ids

    The values caller_id in update_dialer_settings accepts: the workspace's own phone numbers in caller-ID form (phone_number, friendly_name, kind). Same numbers as list_phone_numbers, which also shows assignments, types and prices. Returns 503 when calling is not configured on this Orbit instance.

    Read
  • List Phone Numberslist_phone_numbers

    List the workspace's phone numbers, oldest first: phone_number, number_type (local or toll_free), friendly_name, country, capabilities, monthly_price_cents, status, assigned_user_id, and a members map for the assignees. The Dialer is part of every plan; the workspace rents its numbers and pays for usage (numbers $5/month (local) or $10/month (toll-free), and $0.02 per outbound minute) on a separate Orbit Dialer subscription. An admin buys and releases numbers in Settings → Dialer. A rep calls from their assigned number, else the workspace default (caller_id in get_dialer_settings), else the oldest. The AI cannot buy, release or dial.

    Read
  • Assign Phone Numberassign_phone_number

    Assign one of the workspace's phone numbers to a team member (their calls then show that number), take it back with user_id null, and optionally relabel it with friendly_name. One number per person: 409 when they already hold one (unassign that first). Admins only. Number IDs come from list_phone_numbers, user IDs from team_members in get_crm_schema. Nothing is bought, released or dialed.

    Write
  • Get Calling Costsget_calling_costs

    What the workspace pays for calling, in cents. The Dialer is part of every plan, billed on a separate Orbit Dialer subscription (numbers $5/month (local) or $10/month (toll-free), and $0.02 per outbound minute; $0.05 per transcribed minute (conversations only, when transcribe_calls is on); AI call feedback uses one AI credit per call). Returns numbers by type, this month's outbound and transcript minutes (cents billed and pending), feedback credits, list prices, monthly_total_cents, subscription, terms (/dialer-terms; current says an admin accepted the version in force) and configured. The AI cannot buy or release numbers or accept the terms; an admin does that in Settings → Dialer.

    Read
  • Preview Call Listpreview_call_list

    Preview the call list a saved contact view (create_contact_view, list_contact_views) or a contact list (list_lists, as list_id) would produce. Returns how many contacts match, how many are dialable and how many are skipped and why: do_not_call, no_phone, invalid_phone, unsupported_country (US numbers only), recently_called, max_attempts, duplicate_phone. A sample of dialable contacts comes back only with contacts:read or dialer:read too; crm:read alone gives counts. A person dials it from the Dialer page; this tool does not start calls.

    Read
  • List Dialer Sessionslist_dialer_sessions

    List dialing sessions (one person's run through a call list), newest first: the view it came from, who ran it, status (active, paused, completed, abandoned), how many contacts were queued, how many were skipped and why, and the settings in force. Sessions are started only by a person from the Dialer page; the AI reads them.

    Read
  • Get Dialer Sessionget_dialer_session

    Get one dialing session with its queue: each item carries the contact (name, email, company, call history), the number dialed, its status (queued, calling, done, skipped), skip reason, latest call ID and outcome. Session IDs come from list_dialer_sessions.

    Read
  • List Callslist_calls

    List calls the team has made and received, newest first, with direction (outbound, inbound), inbound_result (answered, forwarded, voicemail, missed), status (initiated, ringing, in-progress, completed, busy, no-answer, failed, canceled), answered_by (human, machine, fax, unknown), outcome (a key from list_call_outcomes), notes, duration_seconds, recording_status and the contact, session and person involved. Filter by contact, session, person, outcome, direction and a started_at window.

    Read
  • Get Callget_call

    Get one call: who was dialed and by whom, from and to numbers, status, answered_by, outcome, notes, started/answered/ended times, duration_seconds, recording_status and recording duration, and whether a voicemail greeting was dropped. Call IDs come from list_calls or a session's items.

    Read
  • Update Call Outcomeupdate_call_outcome

    Set or correct the outcome and/or notes of a finished call (pass at least one). Outcome keys (built-in and custom_*) come from list_call_outcomes. Unknown or hidden outcomes are refused (unknown_outcome, outcome_hidden). do_not_call also adds the number to the do-not-call list; callback with callback_at adds a Call task then. The session item follows. The AI cannot place calls.

    Write
  • List Call Outcomeslist_call_outcomes

    The workspace's call outcomes, for reading calls and update_call_outcome. Each has key (the 14 built-ins plus custom_* ones), label, description, kind (auto: set from how the call ended; manual: picked by a rep), reached (counts in get_call_stats), hidden (can't be set; past calls keep it), built_in and position. require_outcome: reps must pick one after each conversation. Read-only (admins edit them in Settings → Dialer); the AI cannot place calls.

    Read
  • Get Call Statisticsget_call_stats

    Call statistics for a window (default: the last 30 days): finished calls, how many reached a person and the reach rate, voicemails, total and average talk time, and breakdowns by outcome, by team member and by day. Optionally for one person or one session. truncated is true when the window held more than 20,000 calls.

    Read
  • Get Call Insightsget_call_insights

    A call's transcript and the AI coach's feedback, when the workspace has them turned on (transcribe_calls and ai_call_feedback in get_dialer_settings). Returns transcript_status and feedback_status (queued, processing, completed, failed, skipped), transcript_text, transcript_sentences (speaker, start/end seconds, text, confidence), transcript_language, transcript_minutes, and feedback: summary, score (1-10), went_well, improve, objections, next_steps, script_adherence and suggested_outcome. Only conversations are transcribed; 404 until one was requested; poll while queued or processing. The AI cannot place calls.

    Read
  • Delete Call Recordingdelete_call_recording

    Delete a call's recording and transcript: the audio is removed at the carrier and the transcript and AI feedback at the transcription service, so the recording can no longer be played or downloaded and get_call_insights answers 404 for the call. The call itself (numbers, times, duration, outcome, notes) is kept, with recording_status "absent". Admins only; 409 when the call has neither a recording nor a transcript. Cannot be undone.

    Write
  • List Call Scriptslist_call_scripts

    List the team's call scripts, default first then by name, with content, is_default, questions, show_on and who changed them when. A call script is the text a rep reads during a call (Dialer page), with merge fields filled from the contact dialed ({{first_name}}, {{last_name}}, {{full_name}}, {{company}}, {{job_title}}, {{email}}, {{phone}}, {{rep_name}} (the rep's name)); unknown ones stay as written. Sessions start on the team's default script. As a playbook, show_on puts it on contact and/or deal pages, and each question saves its answer into a field of that record.

    Read
  • Get Call Scriptget_call_script

    Get one call script with its full content (IDs from list_call_scripts or a session's script_id). A call script is the text a rep reads during a call (Dialer page), with merge fields filled from the contact dialed ({{first_name}}, {{last_name}}, {{full_name}}, {{company}}, {{job_title}}, {{email}}, {{phone}}, {{rep_name}} (the rep's name)); unknown ones stay as written. Sessions start on the team's default script. As a playbook, show_on puts it on contact and/or deal pages, and each question saves its answer into a field of that record.

    Read
  • Create Call Scriptcreate_call_script

    Write a new call script for the team. A call script is the text a rep reads during a call (Dialer page), with merge fields filled from the contact dialed ({{first_name}}, {{last_name}}, {{full_name}}, {{company}}, {{job_title}}, {{email}}, {{phone}}, {{rep_name}} (the rep's name)); unknown ones stay as written. Sessions start on the team's default script. As a playbook, show_on puts it on contact and/or deal pages, and each question saves its answer into a field of that record. Keep it short enough to read aloud: opener, reason for the call, two or three questions, close. is_default true makes it the default (the previous one loses the flag). The AI cannot place calls.

    Write
  • Update Call Scriptupdate_call_script

    Change a call script's name, content, is_default, questions and/or show_on. Content replaces the whole script. A call script is the text a rep reads during a call (Dialer page), with merge fields filled from the contact dialed ({{first_name}}, {{last_name}}, {{full_name}}, {{company}}, {{job_title}}, {{email}}, {{phone}}, {{rep_name}} (the rep's name)); unknown ones stay as written. Sessions start on the team's default script. As a playbook, show_on puts it on contact and/or deal pages, and each question saves its answer into a field of that record. is_default false leaves the team without a default. Running sessions keep their script.

    Write
  • Delete Call Scriptdelete_call_script

    Delete a call script. Sessions and call insights that used it are kept (their script_id becomes null); if it was the default, the team has no default until another script is flagged. Cannot be undone.

    Write
  • List Do-Not-Call Numberslist_do_not_call

    List the team's do-not-call numbers, newest first: phone_e164, reason (manual, api, import, call_outcome, email_unsubscribe, sms_opt_out), the contact and source email when known, note, who added it and when. Contacts carrying a listed number are flagged do_not_call and left out of every call list. search matches digits of the number or the source email.

    Read
  • Add Do-Not-Call Numbersadd_do_not_call

    Add up to 1000 phone numbers to the team's do-not-call list. Numbers in any format are normalised to E.164 using the dialer's default_country; the result lists added, already_listed and invalid numbers. Listed numbers are excluded from every call list and the contacts carrying them are flagged do_not_call. Pass contact_id when adding one contact's number.

    Write
  • Remove Do-Not-Call Numbersremove_do_not_call

    Remove numbers from the team's do-not-call list, by phone number or by entry ID (pass at least one list). Only a credential whose owner is a team admin can do this; others get 403. Removing a number does not undo an email unsubscribe or SMS opt-out, and the next unsubscribe adds it back.

    Write
  • List Voicemail Greetingslist_voicemail_greetings

    List pre-recorded voicemail greetings, metadata only: name, owner, duration, size, content type and which one is each person's default (the one voicemail_mode drop plays). The audio is uploaded and played from the dashboard and is not available here.

    Read

Webhooks

2 tools
  • List Webhookslist_webhooks

    List webhook subscriptions for the team.

    Read
  • Create Webhookcreate_webhook

    Create a webhook subscription that delivers events about submissions, contacts, companies, deals, tasks, meetings and calls to an HTTPS endpoint you control. Each event needs its object’s read scope (deal.* needs deals:read, call.* needs dialer:read, ...); submission events can be limited to one form.

    Outbound

Integrations

1 tool
  • List Integrationslist_integrations

    List the apps connected to the workspace (HubSpot, Salesforce, Slack, Google Sheets, ...) with their status (connected, error or inactive), the account each is connected as, when it last synced and when its current error started. Never returns credentials or error messages; those stay in Settings > Integrations.

    Read

FAQ

Frequently asked questions.

How Orbit's MCP server works, what agents can and can't do, and what it costs.

Give your agents a CRM to sell from.

Connect Claude, ChatGPT or your own agents in a minute, then let them set up and run your pipeline.

Unlimited seats · MCP access on every plan · Set up by your AI assistant