Integration

LiveSwitch integration

LiveSwitch is a video and photo collaboration platform for field service and home improvement businesses: a technician or agent invites a customer to a live video Session (a conversation) or to upload photos and videos, and the media is gathered into projects. Manage contacts, conversations, projects and tags, read recordings, documents, snapshots and form submissions, run Sparks (AI reports) on a conversation or project from a Spark template, manage custom attributes and webhooks, and read accounts and organization settings. The presigned upload URL routes are not exposed. Authentication is OAuth 2.0 through a LiveSwitch Developer App (requested from [email protected]); every route needs its scope.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in LiveSwitch.Built from the 69 LiveSwitch tools below, on the connection you add once.

What you can do with LiveSwitch

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Conversation, 6 operations

  • create_conversationCreate conversationPOSTCreates a Conversation (a Session in the app): a live call, recording or photo request, upload or scheduled call, by contactId or phone. Show hostJoinUrl to the host at once for a live call. Needs the conversations.write scope.
  • get_conversationGet conversationGETReturns one Conversation (Session) with its status, contact, join and view links, tags and project links. Needs the conversations scope.
  • list_conversation_documentsList conversation documentsGETLists all documents (photos, snapshots and files) of a Conversation. Needs the profile scope.
  • list_conversation_recordingsList conversation recordingsGETLists the recordings of a Conversation. Needs the recordings scope.
  • list_conversationsList conversationsGETLists Conversations (Sessions) with their status, contact, links and tags. Filter with where, sort with order, page with page and pageSize. Needs the conversations scope.
  • update_conversationUpdate conversationPUTChanges a Conversation's contact, notes, tags, name, project or assigned user. Needs the conversations.write scope.

Project, 6 operations

  • create_projectCreate projectPOSTCreates a Project that groups Conversations for one job, claim or installation; it gets a public share URL at once. Needs the projects.write scope.
  • get_projectGet projectGETReturns one Project with its links, contacts, tags and attributes. Needs the projects scope.
  • list_project_documentsList project documentsGETLists all documents (photos, snapshots and files) of a Project. Needs the profile scope.
  • list_project_recordingsList project recordingsGETLists the recordings of a Project. Needs the recordings scope.
  • list_projectsList projectsGETLists Projects, optionally by status, externalId or contactId. Filter with where, sort with order, page with page and pageSize. Needs the projects scope.
  • update_projectUpdate projectPUTChanges a Project's name, externalId, status, address, tags or contacts; tags and contactIds, when sent, replace the current lists. Needs the projects.write scope.

Spark, 6 operations

  • delete_sparkDelete sparkDELETEDeletes a Spark run; a queued or running one is cancelled. Needs the sparks.write scope.
  • get_sparkGet sparkGETReturns a Spark run's status (queued, running, completed, failed or cancelled) and its shareUrl when it was shared. Report content is read through shareUrl. Needs the sparks scope.
  • list_conversation_sparksList conversation sparksGETLists the Spark runs (AI reports) of a Conversation with their status and share link. Needs the sparks scope.
  • list_project_sparksList project sparksGETLists the Spark runs (AI reports) of a Project with their status and share link. Needs the sparks scope.
  • run_conversation_sparkRun conversation sparkPOSTStarts a Spark (AI report) on a Conversation; returns its id queued. Poll get_spark until completed, failed or cancelled. Templates with inputs need a validationToken. Needs the sparks.write scope.
  • run_project_sparkRun project sparkPOSTStarts a Spark (AI report) on a Project; returns its id queued. Poll get_spark until completed, failed or cancelled. Templates with inputs need a validationToken. Needs the sparks.write scope.

Attribute, 5 operations

  • create_attributeCreate attributePOSTDefines a custom field (attribute) in an attribute group for Conversations, Contacts or Projects, with its data type and label. Needs the attributes.write scope.
  • delete_attributeDelete attributeDELETEDeletes an attribute definition. Needs the attributes.write scope.
  • get_attributeGet attributeGETReturns one attribute definition by ID. Needs the attributes scope.
  • list_attributesList attributesGETLists the custom field definitions (attributes), optionally for one attribute group. Filter with where, sort with order, page with page and pageSize. Needs the attributes scope.
  • update_attributeUpdate attributePUTChanges an attribute's label, default value, format or display order; its name, type and entity cannot change. Needs the attributes.write scope.

Attribute group, 5 operations

  • create_attribute_groupCreate attribute groupPOSTCreates an attribute group, a named container for custom fields (attributes); its code name is stored lowercase. Needs the attributes.write scope.
  • delete_attribute_groupDelete attribute groupDELETEDeletes an attribute group. Needs the attributes.write scope.
  • get_attribute_groupGet attribute groupGETReturns one attribute group by ID. Needs the attributes scope.
  • list_attribute_groupsList attribute groupsGETLists the attribute groups (containers of custom fields) of your organization. Filter with where, sort with order, page with page and pageSize. Needs the attributes scope.
  • update_attribute_groupUpdate attribute groupPUTChanges an attribute group's code name or display label. Needs the attributes.write scope.

Contact, 5 operations

  • create_contactCreate contactPOSTCreates a contact (the customer a Conversation is with); a phone or an email is required. Needs the contacts.write scope.
  • delete_contactDelete contactDELETEDeletes a contact and returns it. Needs the contacts scope.
  • get_contactGet contactGETReturns one contact with its custom attributes. Needs the contacts scope.
  • list_contactsList contactsGETLists contacts. Filter with where, sort with order, page with page and pageSize. Needs the contacts scope.
  • update_contactUpdate contactPUTChanges a contact's name, email or phone. Needs the contacts.write scope.

Entity attribute, 5 operations

  • create_entity_attributeCreate entity attributePOSTSets a custom attribute value on one Conversation, Contact or Project, naming the attribute by attributeId or by attributeGroupName plus attributeName. Needs the attributes.write scope.
  • delete_entity_attributeDelete entity attributeDELETEDeletes a custom attribute value. Needs the attributes.write scope.
  • get_entity_attributeGet entity attributeGETReturns one custom attribute value by its ID. Needs the attributes scope.
  • list_entity_attributesList entity attributesGETLists custom attribute values across every Conversation, Contact or Project; for one record use list_entity_attributes_by_entity. Filter with where, sort with order, page with page and pageSize. Needs the attributes scope.
  • update_entity_attributeUpdate entity attributePUTChanges a custom attribute value (and its link text). Needs the attributes.write scope.

Webhook, 5 operations

  • create_webhookCreate webhookPOSTSubscribes a public URL to Create, Update or Delete events of one entity. Payloads may be partial: read the record with its get tool. Administrators only. Needs the webhooks.write scope.
  • delete_webhookDelete webhookDELETEDeletes a webhook subscription. Administrators only. Needs the webhooks.write scope.
  • get_webhookGet webhookGETReturns one webhook subscription. Administrators only. Needs the webhooks scope.
  • list_webhooksList webhooksGETLists the organization's webhook subscriptions. Administrators only. Filter with where, sort with order, page with page and pageSize. Needs the webhooks scope.
  • update_webhookUpdate webhookPUTChanges a webhook subscription (event, entity, url, name, enabled). Administrators only. Needs the webhooks.write scope.

Tag, 3 operations

  • create_tagCreate tagPOSTCreates a tag (a label for Conversations and Projects) with an optional hex color. Needs the tags.write scope.
  • list_tagsList tagsGETLists tags. Filter with where, sort with order, page with page and pageSize. Needs the tags scope.
  • update_tagUpdate tagPUTRenames a tag or changes its color; only the fields you send change. Needs the tags.write scope.

Account, 2 operations

  • get_accountGet accountGETReturns one user account (email, role) by its user ID. Needs the accounts scope.
  • list_accountsList accountsGETLists the user accounts of your LiveSwitch organization (email, role). Filter with where, sort with order, page with page and pageSize. Needs the accounts scope.

File, 2 operations

  • list_conversation_filesList conversation filesGETLists the files of a Conversation. Needs the profile scope.
  • list_project_filesList project filesGETLists the files of a Project. Needs the profile scope.

Snapshot, 2 operations

  • list_conversation_snapshotsList conversation snapshotsGETLists the snapshots of a Conversation. Needs the profile scope.
  • list_project_snapshotsList project snapshotsGETLists the snapshots of a Project. Needs the profile scope.

App, 1 operation

  • delete_app_webhooksDelete app webhooksDELETEDeletes every webhook subscription linked to one app ID. Administrators only. Needs the webhooks.write scope.

By app, 1 operation

  • list_app_webhooksList app webhooksGETLists the webhook subscriptions linked to one app ID. Administrators only. Filter with where, sort with order, page with page and pageSize. Needs the webhooks scope.

By entity, 1 operation

  • list_entity_attributes_by_entityList entity attributes by entityGETLists the custom attribute values of one Conversation, Contact or Project, optionally for one group or attribute name. Needs the attributes scope.

By name, 1 operation

  • get_attribute_group_by_nameGet attribute group by nameGETReturns one attribute group by its code name (for example hcp_app). Needs the attributes scope.

By phone, 1 operation

  • get_contact_by_phoneGet contact by phoneGETFinds a contact by phone number. Needs the contacts scope.

Document, 1 operation

  • get_documentGet documentGETReturns one document, photo or file of a Conversation or Project, with its public and thumbnail URLs. Needs the profile scope.

Form, 1 operation

  • get_formGet formGETReturns a web form with its fields. Needs the forms scope.

Guided instruction, 1 operation

  • list_guided_instructionsList guided instructionsGETLists guided instruction templates, optionally for one Conversation type; pass an id as guidedInstructionId to create_conversation. Page with page and pageSize. Needs the guided-instructions scope.

Me, 1 operation

  • get_meGet meGETReturns the signed-in user and their organization. Needs the me scope.

Option, 1 operation

  • list_spark_template_input_optionsList spark template input optionsGETLists the valid answers for one selection input of a Spark template task; send the one you pick back in tasks[].inputs as value and displayLabel. Needs the spark-templates scope.

Recording, 1 operation

  • get_recordingGet recordingGETReturns one recording with its status, type and public and thumbnail URLs. Needs the recordings scope.

Settings, 1 operation

  • get_organization_settingsGet organization settingsGETReturns your organization's settings: default country code, automatic recording, test account and SMS enabled. Needs the organizations scope.

Share, 1 operation

  • share_sparkShare sparkPOSTMakes a Spark report public for good (cannot be revoked through the API) and returns its shareUrl, which anyone can open without logging in. Needs the sparks.write scope.

Sms enabled, 1 operation

  • update_organization_sms_enabledUpdate organization sms enabledPATCHTurns SMS for your organization on or off and returns the organization settings. Needs the organizations.write scope.

Spark template, 1 operation

  • list_spark_templatesList spark templatesGETLists the Spark templates (AI report types) of your organization with their tasks and inputs; page with limit and cursor (send nextCursor). Needs the spark-templates scope.

Submission, 1 operation

  • get_form_submissionGet form submissionGETReturns one web form submission with the submitted field values, its contact and Conversation. Needs the forms scope.

Validate input, 1 operation

  • validate_spark_template_inputsValidate spark template inputsPOSTValidates a Spark template's task inputs and connected platforms without running anything; returns the validationToken (valid 24 hours) to pass to run_conversation_spark or run_project_spark. Needs the sparks.write scope.

Use LiveSwitch from Claude Code, Cursor or Codex

Connect LiveSwitch in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its LiveSwitch operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect LiveSwitch

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect LiveSwitch once

    Add your LiveSwitch connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

LiveSwitch integration FAQ

What can you do with the LiveSwitch integration?

LiveContext exposes 69 operations on LiveSwitch, covering conversation, project, spark and attribute.

Popular integrations

Browse the whole catalog