MCP App Store
by KeenEthics

Overview

Conduit is the AI customer-experience platform for hospitality. Hotels, vacation-rental managers, and hospitality groups use Conduit to handle guest messaging, voice calls, and support across every channel and language with AI agents. This connector brings your Conduit workspace into Claude. Look up contacts, conversations, reservations, calls, and helpdesk tickets; inspect and configure your AI agents and their knowledge base; and manage workspace settings, all in natural language. Ask things like "show open tickets for this workspace," "what's this guest's reservation," or "what's in this agent's knowledge base," and act on the answer without leaving Claude. Read-only tools retrieve guest, conversation, reservation, ticket, and configuration data. Write tools (gated behind in-app approval) create and update agents, knowledge nodes, skills, tickets, and messages. Access follows your existing Conduit workspace permissions and applies only to your own Conduit account.

Tools

add_contact_channel

ChatGPT
Add an email address, phone number, WhatsApp number, or Instagram handle to an existing contact so messages from it route to that contact. Adding a channel the contact already has is a no-op. Fails with a conflict naming the other contact when a different contact already owns the address; contacts are never merged automatically. Returns the contact with its channels.

add_listings_to_listing_group

ChatGPT
Add one or more workspace listings to an existing listing group. Listings already in the group are unchanged. Requires the Manage Properties permission.

add_ticket_tag

ChatGPT
Apply an existing conversation tag (from list_conversation_tags) to a ticket. Tags are stored on the ticket's contact, so every ticket of that contact shows them. Adding a tag already present is a no-op. Returns the contact's current tags.

apply_workflow_edits

ChatGPT
Atomically replan and apply a previously previewed ordered edit batch. Rechecks active/latest heads and result hash, deduplicates retries by operation_id, and reports removed base steps in deleted_step_ids.

archive_portal_guide

ChatGPT
Archive a portal guide without deleting it.

archive_portal_offer

ChatGPT
Archive a portal offer and remove it from portal template layouts.

archive_portal_template

ChatGPT
Archive a portal template without deleting its history.

assign_backup_access_code

ChatGPT
Assign a prepared backup code when a guest cannot enter with their existing code. First confirm the door and entry steps. Requires a current reservation linked to the guest and lock. Returns the same backup on retries. Subsequent guest code reads use this backup. Share only the returned non-null code. A null code means the backup is still being issued; call again in a few seconds. A pending or failed windowSyncStatus means checkout expiry is not confirmed; notify the property team. If no backup is available or a backup also fails, escalate without creating another code. For a forgotten code, use list_access_codes. This tool does not revoke the original code or send a message.

assign_conversation

ChatGPT
Assign or unassign a conversation, or choose an eligible assignee using the same round-robin rules as ASSIGN_CONTACT. This changes conversation ownership only and does not cascade to open tickets.

assign_device_property

ChatGPT
Map a device (smart lock, thermostat, sensor, camera) to a property so it shows on that property and its name/address resolve. Devices can serve several properties (a building door serves every unit inside), so passing a listing_id ADDS a mapping without removing existing ones; pass null to clear every mapping. Provider sync leaves new devices unmapped until an operator binds them. This never touches the physical device.

assign_escalation

ChatGPT
Assign a chat escalation to a workspace user for the human-handoff path. The assignee must be a member of the escalation's workspace.

assign_ticket

ChatGPT
Assign a ticket to a workspace member, or pass null to unassign it. Use member_id from list_workspace_users, not the user id. Changes only the ticket's assignee, not the conversation owner, and notifies the new assignee.

book_appointment

ChatGPT
Complete a booking for a selected time slot.

bulk_set_knowledge_scope

ChatGPT
Queue a durable scope update for explicit files and recursive folders.

cancel_appointment

ChatGPT
Cancel an existing booking. This cannot be undone.

cancel_knowledge_source_sync

ChatGPT
Turn off auto-sync for a knowledge source. The source and everything already imported from it stay in the knowledge base; only the schedule stops.

check_listing_availability

ChatGPT
Check one listing for one checkout-exclusive date range. Returns no alternatives; call search_listing_availability separately when alternatives are needed. Treat unknown as unconfirmed and do not claim the listing is unavailable. Availability only means every requested calendar night is open; it does not confirm all booking rules.

clone_workflow

ChatGPT
Clone a workflow as a validated new DRAFT. Same-workspace clones preserve protected values server-side. Cross-workspace clones require every public resource reference to resolve through explicit resource_mappings, refuse inline HTTP or authorization secrets, and require exact provider_config_overrides for provider-scoped Airtable, Shopify, HubSpot, and Salesforce metadata. Overrides should preserve source resource IDs for resource_mappings or omit optional connections. Safe retries require operation_id.

close_ticket

ChatGPT
Close a resolved ticket.

confirm_booking

ChatGPT
Confirm a pending booking.

create_access_code

ChatGPT
Provision an access code on a smart lock — ongoing, or time-bound with a starts_at/ends_at window (e.g. a housekeeper's code for a clean, or a contact's stay window). The code is programmed onto the physical lock asynchronously and this returns only its access_code_id. The digits do NOT exist yet when this returns: the provider mints them and reports back a moment later. Read them with get_access_code, which returns code: null until the lock confirms them. Never tell anyone a code you have not read back as non-null.

create_agent_guardrail

ChatGPT
Add one guardrail to a V2 chat agent without replacing existing guardrails.

create_agent_trigger

ChatGPT
Add one trigger to a V2 chat agent without replacing its existing triggers. Cron triggers also create their schedule.

create_call_group

ChatGPT
Create a call group that routes inbound calls from workspace phone numbers to workspace users. Requires the Manage Assignment Schedule permission.

create_contact

ChatGPT
Create a contact in a workspace with one or more direct channels.

create_conversation_tag

ChatGPT
Create a conversation label, root topic, or subtopic. To create a subtopic, pass kind='topic' and parent_tag_id set to a root topic id.

create_custom_attribute

ChatGPT
Create a typed custom attribute definition and return its ID. Use patch_custom_attribute for later metadata or option changes; the field type cannot change. Select require options.

create_custom_attribute_section

ChatGPT
Create a named section for organizing custom attribute definitions. Returns the generated section ID for use as section_id on create_custom_attribute or patch_custom_attribute.

create_directory

ChatGPT
Create a new directory to organize knowledge base content.

create_knowledge

ChatGPT
Create a new knowledge base article.

create_listing_group

ChatGPT
Create a listing group from a unique name and one or more workspace listings. Requires the Manage Properties permission.

create_operator_skill

ChatGPT
Create an Operator skill (knowledge card) for a workspace. Requires the Manage Agents permission.

create_portal_guide

ChatGPT
Create a portal guide for a workspace.

create_portal_listing_upload_url

ChatGPT
Upload an image or video for a portal field such as the house manual or check-in instructions. Create a single-use media upload URL valid for one hour for a portal listing. POST raw file bytes with Content-Type to upload_url, then pass the returned storageId to register_portal_listing_upload. Supports JPEG, PNG, WebP, GIF, AVIF up to 10 MiB and MP4/WebM up to 50 MiB. Requires Portals access, ManageProperties permission, and write access.

create_portal_offer

ChatGPT
Create an active portal offer for a workspace.

create_portal_template

ChatGPT
Create a portal template. A template starts as a draft unless the request sets another valid status.

create_skill

ChatGPT
Create a workspace agent skill.

create_ticket_note

ChatGPT
Create an internal note on a ticket. Optional attachments must first be uploaded through the public API upload-url flow, then passed as attachment metadata.

create_verification_rule

ChatGPT
Create a portal verification rule. The rule is enabled and appended last unless the request says otherwise, and its config must match the chosen step type.

create_voice_agent

ChatGPT
Turn a phone number the workspace already owns into a voice agent and provision its inbound AI agent. Identify the number by its phone_number_config_id (from list_calls / the phone numbers surface). This does not buy a new number.

create_workflow

ChatGPT
Create a new workflow from a full definition (trigger, first_step_id, steps). Call get_workflow_schema first to construct a valid definition. Created as DRAFT unless activate is true. Returns the same shape as get_workflow.

create_workflow_folder

ChatGPT
Create a workflow folder in a workspace. Requires the Manage Workflows permission.

create_workspace_role

ChatGPT
Create a custom workspace role from permission names returned by list_workspace_permissions. Requires Manage Members.

delete_access_code

ChatGPT
Revoke an access code from a smart lock. The code stops working on the physical device — use when a stay ends early, a code leaks, or a vendor's window closes.

delete_agent

ChatGPT
Delete a V2 chat agent.

delete_agent_guardrail

ChatGPT
Delete one V2 chat agent guardrail without changing sibling guardrails.

delete_agent_trigger

ChatGPT
Remove one trigger, including a manual trigger, from a V2 chat agent. A trigger shared with other agents or owned by a connection is only detached from this agent.

delete_conversation_tag

ChatGPT
Delete a conversation tag. Delete or reparent subtopics before deleting their parent topic.

delete_custom_attribute

ChatGPT
Permanently delete a custom attribute and all stored contact values. Refuses deletion while an active workflow or enabled agent skill references it.

delete_knowledge

ChatGPT
Delete knowledge base entries and their search index data. Deleting a directory deletes its entire subtree, and a listed node that sits inside a listed directory is covered by that directory rather than deleted on its own. An id that does not exist, is already in the trash, or that this agent cannot read comes back in `not_found_ids; an id whose delete errored comes back in failed_ids`. Neither blocks the rest of the batch, and the call raises only when no id resolved at all.

delete_listing_group

ChatGPT
Permanently delete a listing group without deleting its listings. Requires the Manage Properties permission.

delete_operator_skill

ChatGPT
Delete an Operator skill from a workspace. Requires the Manage Agents permission.

delete_portal_template

ChatGPT
Permanently delete a portal template that has no recorded sales. This action also deletes its customer sessions.

delete_skill

ChatGPT
Delete a workspace agent skill.

delete_source

ChatGPT
Delete all knowledge entries created by a specific import source.

delete_ticket_note

ChatGPT
Delete an internal note attached to a ticket.

delete_verification_rule

ChatGPT
Permanently delete a portal verification rule. Stays already collecting this step keep what they have gathered; new stays stop being asked.

delete_voice_agent

ChatGPT
Remove a voice agent by converting its phone number back to a regular (non-AI) number. The phone number itself is kept.

describe_bigquery_tables

ChatGPT
Discover column names, data types, and one workspace-scoped sample row per requested table. Call this before execute_bigquery_query so you know the exact column names and can see real JSON/string value shapes.

duplicate_portal_guide

ChatGPT
Create a draft copy of a portal guide.

duplicate_portal_template

ChatGPT
Create a draft copy of a portal template.

edit_knowledge

ChatGPT
Edit an existing knowledge base article. Only manually created articles can be edited. The agent must have read access to the node; otherwise it appears as "not found".

execute_bigquery_query

ChatGPT
Execute a BigQuery SQL query against workspace production data. Call describe_bigquery_tables first for the specific tables you plan to query. Only SELECT statements are allowed; workspace scoping and deleted-record filtering are injected automatically (do not add them yourself); a row LIMIT is enforced. Ticket assignee attribution uses the current ticket.assigneeid only. Historical ticketevent data is frozen and unavailable for reliable point-in-time attribution. If asked who owned a ticket at the time of an event, disclose that only the current owner is available and do not present current-owner results as historical.

find_nearby_workers

ChatGPT
Find on-shift workers near a property, ordered by straight-line distance. Includes sample time, GPS accuracy, and battery percentage. Excludes locations older than five minutes, poor accuracy, and away members. Proximity does not establish availability or qualifications; check existing tasks before assigning. Does not assign a task.

generate_pdf

ChatGPT
Generate a durable PDF artifact from markdown content and return a Convex download URL. Use this when the user asks to create, export, download, or share a PDF. To include a chart, call query_insights first, then put [[chart:<chart_id>]] on its own line where the chart belongs. This agent tool returns a URL directly; it does not attach or send the PDF to a conversation.

get_access_code

ChatGPT
Read back one access code by its id — use this after create_access_code (which returns only an id) to learn the digits and tell the contact. Only reads a code whose access_code_id you already have. Two things to check before you give anyone a code. code is NULL until the lock confirms the digits: the provider mints them a moment after you create the code, so a fresh code reads back as null with status 'setting'. If code is null, the digits do not exist yet — do NOT invent them and do NOT read out a number from anywhere else; tell the contact the code is being programmed and check again shortly. is_live: false means the code is NOT on the door at all (removed, expired, or failed) — never give out a code that is not live.

get_agent

ChatGPT
Get a single V2 chat agent by id.

get_agent_run

ChatGPT
Get a single agent run's stored detail: status, disposition, error, token usage, latency, model reply, reasoning, trace ID, and ordered tool-call timeline.

get_agent_runs_by_session_id

ChatGPT
Get all runs in one agent session, newest first. Use get_agent_run for a run's stored model output and tool-call timeline.

get_agent_trace

ChatGPT
Fetch a bounded Logfire trace for an agent run: root input/output, latency, and the ordered observation tree (LLM calls, tool calls). Large traces preserve the beginning and end, report truncation metadata, and include htmlPath for the full trace. Use the run id from get_agent_run, list_agent_runs, or get_agent_runs_by_session_id.

get_appointment

ChatGPT
Get a single appointment by id, including scheduled start/end, status, and booking-time contact details.

get_appointments

ChatGPT
List bookings for the workspace, optionally filtered by date range.

get_automation_rate

ChatGPT
Get the automation-rate metric for a workspace over a date range. Returns the existing headline fields plus aggregate and daily decision, disposition, delivery, and input-message mapping breakdowns. Answer-and-escalate is a successful AI send in this metric. Top-level counts equal sums over the dense daily series.

get_billing_usage

ChatGPT
Get the current plan, credit balance, billing-cycle usage by product, Salesbricks aggregate usage, and bonus-credit history shown on a workspace billing page.

get_booking_calendar_availability

ChatGPT
Check available booking time slots for a date range.

get_call

ChatGPT
Get a single call record by id.

get_channels_for_contact

ChatGPT
List all communication channels available for a contact. Returns channel types (sms, whatsapp, email, airbnb, booking_com, etc.) with their values (phone numbers, email addresses, thread IDs).

get_chat_history_by_contact

ChatGPT
Fetch a contact's full chat history across every channel, newest first, with opaque cursor pagination.

get_checkin_status

ChatGPT
Read a contact's portal check-in progress for their stay so you can answer questions like what is left before check-in, whether their ID went through, and when their security deposit releases. Returns the aggregate status, a derived next_step, and a per-step requirements list where each step is pending, completed, or waived. For ID verification, under_review means the document was submitted and a human (or the provider) is still reviewing it (it is NOT a rejection); rejected is a final decline the contact must redo. security_deposit.release_eligible_at is when an authorized hold becomes eligible to release. access_details_locked explains why Wi-Fi and entry codes may be hidden (some operators hide them until every check-in step is complete). This tool is read-only: it NEVER creates a portal or returns a link. has_active_portal only tells you whether a live portal already exists; to send or resend the portal link, use get_portal instead. Timestamps are ISO 8601 and money is pre-formatted, so the output is safe to read aloud.

get_contact

ChatGPT
Get one contact by exactly one identifier: contact_id, phone, email, or pms_reservation_id. Returns identity, status, and channels; set include_listings, include_last_event, include_reservations, or include_custom_attributes for more. If an identifier matches more than one contact, the call fails without guessing: use search_contacts to list the matches.

get_contact_allocation

ChatGPT
Fetch one allocation linked to a contact by its allocation type and allocation ID. When no matching allocation exists, the tool returns { found: false } as a successful result — branch on found before reading any other fields. allocation_id MUST be a concrete identifier, never a placeholder like "any" or the contact ID.

get_contact_custom_attributes

ChatGPT
For Operator or platform workflows with a known contact ID: get typed custom attribute values. Use patch_contact_custom_attributes to update those values.

get_conversation

ChatGPT
Read a conversation: its metadata plus a page of messages, newest first. Each message carries a delivery status; an outgoing message reached the contact only when its status is sent. Pass exactly one of contact_id (a conversation is keyed by its contact, so a conversation id works here too) or ticket_id (only that ticket's messages). Narrow with channel_type (contact_id only) or sent_after, page older messages with the returned nextCursor, or set include_messages to false for metadata only.

get_conversation_tag

ChatGPT
Get a single conversation label, root topic, or subtopic.

get_customer_portals

ChatGPT
Check a contact's portal history and status before sending or resending a portal: whether the contact already has an outstanding portal, completed a purchase, has pending delivery, or had a failed or expired portal. Each portal also lists the contact's offer requests, newest per offer, with their outcome: requested is still waiting on the operator and is not a yes, approved was accepted, declined was turned down, and expired lapsed without an answer. Do not re-pitch an offer that is requested or declined, and never promise approval of a requested one. If the contact asks why a request was declined, say the operator declined it and offer to pass the question along. Returns safe portal metadata, offers, request outcomes, and purchase summaries without exposing portal links or Stripe IDs.

get_device_history

ChatGPT
Read a device's event history — the audit trail of what it has done, newest first. Covers lock/unlock, access code set/removed/failed, low battery, connect/disconnect, sensor breaches (noise, temperature, humidity, smoke), thermostat changes, and doorbell rings, each with the time it happened. Use this to answer questions like 'when was the front door last unlocked' or 'has this lock had battery problems'. For live conditions right now (current temperature, is it online) use get_device_telemetry instead.

get_device_telemetry

ChatGPT
Read a device's live telemetry and recent events. For a noise/environment sensor: latest readings (noise dB, temperature, humidity, occupancy estimate). For a thermostat: the live climate state (current/target temperature, HVAC mode). Also returns which sensing the device supports, online/battery status, and recent events (noise threshold breaches, temp out of range, doorbell rings, lock/unlock). Use this to answer questions about a unit's conditions or to check the result of a device action.

get_directions

ChatGPT
Get directions between two specific addresses using Google Maps. Both origin and destination must be properly formatted addresses (e.g., '123 Main St, City, State'). Returns route, duration, and distance.

get_drive_file

ChatGPT
Fetch one Google Drive file's current metadata by id. Use it to confirm a file's name, type, and whether it can be imported before calling import_drive_file.

get_helpdesk_ticket

ChatGPT
Get a single helpdesk ticket by id.

get_knowledge

ChatGPT
Read the full content and metadata of a knowledge base entry. Returns `not found if the current agent cannot access the node — indistinguishable from a genuinely missing node, by design. Trashed entries are returned by id lookup too — check deleted_at` on the response. When non-null, the entry has been moved to trash and should not be treated as active content.

get_knowledge_scope_job

ChatGPT
Get progress and result counts for a bulk file-scope job.

get_listing

ChatGPT
Get details for one workspace listing by listing_id, usually after list_listings. Returns documented active status, latest status-change metadata when recorded, and an allowlisted listing snapshot for agent context and availability workflows. Does not return door codes, wifi credentials, custom fields, manuals, images, or raw PMS data. For door codes, wifi, house manual, and other guest portal info, use get_portal_listing_fields.

get_member_work_hours

ChatGPT
Read a workspace member's weekly work hours and timezone. For multiple members, prefer list_workspace_users or search_workspace_users with include_work_hours: true. Empty schedule means unrestricted hours. Human callers can access their own hours; accessing another member requires Manage Members, Manage Calendars, or Manage Assignment Schedule.

get_message_templates

ChatGPT
List approved WhatsApp templates available for this workspace. Use this before send_message when sending WhatsApp outside the reply window; pass template_id and template_variables to send_message.

get_ota_review_metrics

ChatGPT
Fetch native aggregate review metrics for one Airbnb, Booking.com, or Vrbo property URL. Returns the overall rating and scale, review count, category ratings and platform-specific indicators. A null rating with count zero means explicitly no native reviews; an error means unavailable, not zero. Does not return individual review text or imported review ratings.

get_portal

ChatGPT
Get the contact's stay portal link and return portal_url, creating the portal from the workspace's portal settings if it does not exist yet. The portal's offers and check-in steps come from the operator's configured templates and verification rules. Set reservation_id when the conversation identifies a specific stay. Omit it to use the contact's current stay. Set open_step or offer_id to link directly to one available check-in step or offer. Do not set both. Use update_portal to add, remove, or highlight offers. Include portal_url in the final customer response.

get_portal_brand_kit

ChatGPT
Get the workspace Brand Kit used as the default for future portal sessions.

get_portal_guide

ChatGPT
Get a complete portal guide and its concurrency timestamp.

get_portal_listing_fields

ChatGPT
Read a property's guest portal info: portal name, address, map links, directions, area description, check-in and check-out times and instructions, wifi name and password, parking, house rules, house manual, trash location and collection, and door code. Returns each field's current value, PMS value, override source, rich-text document, and media URLs. Read before editing to keep existing formatting and images. Requires Portals access and AccessProperties permission.

get_portal_offer

ChatGPT
Get a complete portal offer definition and its concurrency timestamp.

get_portal_session

ChatGPT
Get one portal session with reservation-scoped check-in progress, every submitted field, safe order summaries, ticket references, and downloadable Conduit-stored assets. Provider-hosted files are reported as unavailable rather than omitted.

get_portal_template

ChatGPT
Get a portal template's saved configuration and optimistic-lock version.

get_reservation

ChatGPT
Get synced reservation details by PMS reservation id, guest phone, or guest email. A guest-supplied confirmation code must be paired with the guest's full name. Identifier lookups return details only for one match; multiple matches or excessive candidates return ambiguous: true with no reservation details. Name and code are matching inputs, not identity verification.

get_resolution_rate

ChatGPT
Get the share of eligible conversation threads whose final agent decision was resolved and sent. The response also includes fully_autonomous, the stricter subset with no teammate outbound and no escalation during the selected date range.

get_schedule

ChatGPT
Get details of a specific booking schedule.

get_skill

ChatGPT
Get a single workspace agent skill by id.

get_ticket

ChatGPT
Get a single ticket by id.

get_ticket_detail

ChatGPT
Resolve a helpdesk ticket for a contact. If ticket_id is provided, returns that specific ticket; otherwise returns the contact's most recent ticket. Returns { found: false } when none exists.

get_ticket_note

ChatGPT
Get a single internal note attached to a ticket.

get_trigger_event

ChatGPT
Resolve a trigger_event_id (as returned by get_agent_run) into its trigger event audit row: the trigger type, envelope source, external id, idempotency key, contact/conversation, per-source refs, and the reply it produced. Use it to see what actually fired an event-triggered agent.

get_verification_rule

ChatGPT
Read one portal verification rule and its full config.

get_voice_agent

ChatGPT
Get a single voice agent by id.

get_workflow

ChatGPT
Get a single workflow's full definition: metadata, trigger, and the step graph (steps + derived edges) as the Workflows editor stores it. Embedded credential material (e.g. HTTP auth header values) is redacted.

get_workflow_outline

ChatGPT
Get compact workflow metadata, active/latest version heads, step summaries, and canonical edges without loading step configs. Refresh after every edit.

get_workflow_resource_references

ChatGPT
Inventory public workspace-owned resources referenced by a workflow, including exact trigger, step, and passing-variable paths. Protected and legacy inline HTTP configuration is excluded. Returns availability without exposing secret values.

get_workflow_schema

ChatGPT
Return a JSON Schema describing a valid workflow definition input: every step type with its per-step config schema, every trigger type with its config schema, and the graph rules. Call this FIRST, before create_workflow / update_workflow, to construct a valid definition. Read-only.

get_workflow_step

ChatGPT
Get one workflow step with its complete redacted config and canonical incoming/outgoing edges. Graph pointers are not included in config.

get_workflow_step_references

ChatGPT
Get the step outputs guaranteed on every path to one step, plus the step references its config currently uses and any invalid references.

get_workflow_step_schema

ChatGPT
Get the complete config JSON Schema for one workflow step type. Graph pointers are intentionally excluded.

google_places_recommendations

ChatGPT
Get recommendations for restaurants, attractions, and other places using Google Places. Use for queries about things to do, places to eat, or local attractions near a location. Returns results with ratings, price levels, and driving distance.

health_check

ChatGPT
Check MCP server connectivity and authentication. Returns a status message with the authenticated workspace ID. Use this tool to verify the MCP connection is working correctly.

import_drive_file

ChatGPT
Import a Google Drive file into the workspace knowledge base. Find the file first with search_drive_files or list_drive_files; only files whose supported_for_import is true can be imported. Importing the same file twice updates the existing knowledge source in place rather than creating a duplicate. Pair with set_knowledge_source_sync to keep it up to date automatically.

ingest_file

ChatGPT
Ingest a file into the knowledge base (fire-and-forget). Exactly one content source is required, resolved in this precedence: `text_content (UTF-8 encoded) → url (HTTP GET) → convex_storage_id` (Convex signed URL → HTTP GET). Returns immediately with a job_id; the actual processing runs in the background and notifies Convex on completion via webhook.

ingest_structured

ChatGPT
Ingest a structured data file (CSV, Excel) by blob storage reference. No file parsing — the node stores the storage reference so the agent can access the raw file from the state backend at runtime.

invite_workspace_member

ChatGPT
Invite a member by email with a workspace role, including a custom permission set. Get role_id from list_workspace_roles. Requires Manage Members.

leave_note

ChatGPT
Leave an internal note on a contact's conversation. Notes are visible to workspace members only and are NEVER sent to the contact. For callback requests, include caller_name and callback_number, then set follow_up_required to true to put the conversation in the team's queue. Omit follow_up_required for a silent note. Message supports HTML for formatting (e.g. <p>, <br>, <strong>, <ul>). A response with a note_id means the note was saved.

list_access_codes

ChatGPT
Read the access codes on a smart lock. When serving a contact, this returns only that guest's own codes on their own lock — use it when a guest asks for a code they forgot. access_codes are the codes on the lock (someone can type them in right now). inactive_codes are past codes (removed, expired, or the provider failed to program them) — use them to explain why a code stopped working, and NEVER give one out as a working code. Each code's code field holds its digits, but ONLY once the lock has confirmed them (status 'set'); it is null for a code still being programmed and for every inactive code. A null code is not a code you can look up elsewhere or guess — the digits either do not exist yet or are no longer valid. Also the way to find an access_code_id before calling delete_access_code. To read back a single code you already hold the id of (e.g. one you just provisioned), use get_access_code.

list_agent_guardrails

ChatGPT
List one V2 chat agent's guardrails with stable row IDs. Guardrails have no supported ordering semantics.

list_agent_runs

ChatGPT
List runs for a V2 chat agent, newest first. Each run summarizes its status, disposition, error, latency, and token usage. Use get_agent_run for stored run detail and its tool-call timeline.

list_agent_sessions

ChatGPT
List an agent's sessions newest first. Each session includes its latest run in the requested time window, including trace metadata for follow-up analysis.

list_agent_triggers

ChatGPT
List one V2 chat agent's triggers with stable trigger IDs, optionally filtered by type or enabled state.

list_agents

ChatGPT
List V2 chat agent summaries in a workspace. Use get_agent for full configuration.

list_airbnb_transactions

ChatGPT
List cached Airbnb transaction rows for opted-in Airbnb connections. Filter by Airbnb account id or transaction type.

list_appointments

ChatGPT
List appointments for a workspace. Filter by status and scheduled start range to compute booking efficacy rates.

list_calls

ChatGPT
List workspace call records with common filters.

list_contact_appointments

ChatGPT
List appointments associated with a single contact.

list_contact_calls

ChatGPT
List calls associated with a single contact.

list_contact_helpdesk_tickets

ChatGPT
List helpdesk tickets mirrored from external helpdesk integrations for a single contact.

list_contact_notes

ChatGPT
List internal notes on a contact that are not tied to any ticket, such as notes left in the conversation inbox. Notes are ordered by when they were recorded in Conduit, matching the inbox; notes synced from a PMS keep their original created_at, which can be earlier. Use list_ticket_notes for a ticket's notes.

list_contact_reservations

ChatGPT
List reservations associated with a single contact via the contact's reservation allocations. Airbnb reservations include normalized payout, fee, and tax amounts when available.

list_contact_tickets

ChatGPT
List tickets associated with a single contact.

list_contacts

ChatGPT
List contacts in a workspace with pagination and inbox filters.

list_conversation_assignment_events

ChatGPT
List the conversation's assignment and unassignment history, including whether each change came from a user, workflow, API call, round robin, or the system.

list_conversation_tags

ChatGPT
List conversation labels, root topics, and subtopics for a workspace.

list_conversations

ChatGPT
List conversation summaries for a workspace.

list_custom_attribute_sections

ChatGPT
List section IDs, names, order, and attribute counts for a workspace. Use before setting section_id on a custom attribute; this does not return attribute definitions.

list_custom_attributes

ChatGPT
List every custom attribute definition in a workspace, including IDs, types, options, and sections. Use before creating or patching definitions; use get_contact_custom_attributes for one contact's values.

list_devices

ChatGPT
List the workspace's smart devices (locks, thermostats, noise and motion sensors, cameras) with their online status, battery, lock state, and linked property. Access codes are never included. Use this to find a device before controlling it.

list_drive_connections

ChatGPT
List the Google Drive connections you can use in a workspace. Drive access is a personal OAuth grant, so this only ever returns your own connections, never a teammate's. Pass an id from here as connection_id when you own more than one.

list_drive_files

ChatGPT
Browse a Google Drive folder's direct children. Omit folder_id to list the drive root. Folders come back with is_folder true, so you can walk down into them by passing their id as the next folder_id.

list_escalations

ChatGPT
List chat escalations for a workspace.

list_helpdesk_tickets

ChatGPT
List helpdesk tickets mirrored from external helpdesk integrations (Zendesk, Pylon, Plain).

list_inbox_types

ChatGPT
List the workspace's inbox types (id + name). Each id is stable and usable as a message trigger's inbox_type_id (config scope_type "inbox") and as the inbox_type_id filter on list_conversations. Reserved inbox types return their slug (e.g. "guest"); custom inbox types return their opaque id.

list_inboxes

ChatGPT
List the inbox types configured for a workspace, including their inboxTypeId values used to scope other tools.

list_knowledge_sources

ChatGPT
List the workspace's knowledge sources and their auto-sync state: the cadence each is on, when it next syncs, when it last synced, and whether sync is paused. Use it to find a source id for set_knowledge_source_sync or cancel_knowledge_source_sync.

list_listing_cities

ChatGPT
List canonical city values for active workspace listings. Use one returned city as the city filter for search_listing_availability.

list_listing_group_listings

ChatGPT
List the listings stored in one listing group. Results include active status and retain unavailable group members.

list_listing_groups

ChatGPT
List the listing groups in a workspace. Use a group_id with list_listing_group_listings to inspect its members.

list_listings

ChatGPT
List workspace listings with the listingId needed by check_listing_availability and other exact listing operations. Use query to narrow by internal listing name, or omit it to browse paginated listings. Use listing_ids to return an exact ordered subset. Use active to select active or inactive listings; include_inactive defaults to true when active is omitted. Results contain documented active-status metadata plus sanitized public details including images, descriptions, capacity, amenities, and base nightly price when known.

list_message_senders

ChatGPT
List configured outbound providers/from identities for a channel. Use this before send_message when the user asks to send from a specific number/address, or when send_message needs sender_id because multiple senders are configured.

list_operator_skills

ChatGPT
List the Operator's skills (knowledge cards) for a workspace. These are the Operator assistant's skills, separate from regular agent skills.

list_portal_guides

ChatGPT
List workspace portal guides with their publication status and update time.

list_portal_offer_catalog

ChatGPT
List portal offer definitions for configuration work. This does not list offers on one customer portal session.

list_portal_offers

ChatGPT
List this workspace's active upsell offers, optionally filtered by a search query over name and description. Use this to find the offer(s) matching a contact's request so you can add them to their portal via update_portal.

list_portal_sessions

ChatGPT
List reservations selected by arrival date, departure date, listing, contact, or PMS reservation identifiers. Each reservation includes one nullable portal session and check-in progress summary.

list_portal_template_catalog

ChatGPT
List saved portal templates with their status, version, and update time.

list_reservation_alterations

ChatGPT
List pending guest-requested Airbnb reservation alterations. Compare current and requested dates, guest counts, and host payout before responding. Poll this tool to discover new requests.

list_reservations

ChatGPT
List PMS reservations in a workspace. To find arrivals on a specific date, provide both listing_id and arrival_date; to find the booking that ends that day, provide listing_id and departure_date instead. Either indexed lookup returns the matching bookings without paging through the rest of the listing's calendar, which is how you resolve the other guest on a turnover day. Filter by status when needed. Airbnb reservations include normalized payout, fee, and tax amounts when available.

list_skills

ChatGPT
List workspace agent skills.

list_supported_models

ChatGPT
List the LLM models an internal agent's model can be set to. Each entry's model_string is the value to pass. The set is global and can change over time, so read it here instead of hardcoding values.

list_ticket_events

ChatGPT
List a ticket's event history, newest first: assignments, status changes, reopen/close/merge, waiting-on and follow-up changes, and message events. Each event names its actor: actor.kind is member for a human teammate, or agent, bot, workflow, system, contact. Use this to see who assigned a ticket before reassigning it. Pass types (e.g. ["assigned", "unassigned"]) to keep only those events.

list_ticket_notes

ChatGPT
List internal notes attached to a ticket.

list_tickets

ChatGPT
List the ticket queue for a workspace.

list_verification_rules

ChatGPT
List portal verification rules in evaluation order. Agreement, mandatory fee, additional question, and custom field gate rules stack, so every enabled matching rule applies. Other step types use the first enabled matching rule in their slot, so order decides which applies.

list_voice_agents

ChatGPT
List the voice agents in a workspace. A voice agent is an AI-enabled phone number that answers inbound calls.

list_workflow_execution_events

ChatGPT
List the step-level event log for a single workflow execution. Ascending by timestamp by default. Payload summaries have credential/raw-request material redacted.

list_workflow_executions

ChatGPT
List the run history for a workflow, newest first. Filter by status and by started_after / started_before.

list_workflow_folders

ChatGPT
List workflow folders in a workspace. Use the returned folder ids with move_workflow_to_folder.

list_workflows

ChatGPT
List workflows (the standalone Workflows tab) in a workspace. Returns the latest version of each workflow by default; pass all_versions=true to include version history.

list_workspace_permissions

ChatGPT
List available permission names for creating a custom workspace role.

list_workspace_roles

ChatGPT
List workspace roles and their permission sets, including custom roles. Use role_id when inviting a member.

list_workspace_senders

ChatGPT
List the configured outbound email, SMS, and WhatsApp senders for a workspace.

list_workspace_users

ChatGPT
List workspace members. Each row carries two distinct ids: id (the user id) and member_id (the workspace member id). Task assignment takes member_id, not id. For scheduling, set include_work_hours: true to read weekly schedules with the roster.

list_workspace_whatsapp_templates

ChatGPT
List stored WhatsApp templates, approval statuses, Content SIDs, bodies, and variable keys for a workspace.

list_workspaces

ChatGPT
List the workspaces accessible to the current public API token.

move_directory_contents

ChatGPT
Move up to limit visible direct children from a directory. Directory children keep their subtrees. Hidden ACL-denied children are not moved. The source directory remains in place, and has_more/next_cursor tell the caller when repeated calls are needed.

move_knowledge

ChatGPT
Move a knowledge node (article or directory) to a new location in the tree. When moving a directory, the entire subtree moves with it.

move_workflow_to_folder

ChatGPT
Move a workflow into a workflow folder. Set folder_id to null to remove it from its current folder. Requires the Manage Workflows permission.

patch_agent_guardrail

ChatGPT
Update one guardrail's title or rule without changing sibling guardrails.

patch_agent_trigger

ChatGPT
Change one trigger's name, description, config, or enabled state without changing the agent's other triggers. The trigger ID and type stay the same.

patch_call_group

ChatGPT
Edit a call group's name, routing strategy, auto-away behavior, members, or phone numbers. Only supplied fields change. Requires the Manage Assignment Schedule permission.

patch_contact

ChatGPT
Update mutable contact metadata for an existing contact.

patch_contact_custom_attributes

ChatGPT
For Operator or platform workflows with a known contact ID: patch one or more typed custom attribute values. For ticket-aware, name-based single-field changes, use contact_update_custom_field.

patch_conversation_tag

ChatGPT
Update a conversation label, root topic, or subtopic. Pass parent_tag_id=null to promote a subtopic to a root topic.

patch_custom_attribute

ChatGPT
Update mutable metadata, placement, or options for a custom attribute definition. Use an ID from list_custom_attributes; use patch_contact_custom_attributes to set contact values. Option renames migrate stored values; removing in-use values rejects unless clearing is requested.

patch_custom_attribute_section

ChatGPT
Rename or reorder an existing custom attribute section using an ID from list_custom_attribute_sections. Omitted fields stay unchanged; this does not move attributes between sections.

patch_operator_skill

ChatGPT
Update an Operator skill's title and/or knowledge. Requires the Manage Agents permission.

patch_portal_brand_kit

ChatGPT
Update the workspace Brand Kit. Existing customer portal sessions keep their saved branding snapshot.

patch_portal_guide

ChatGPT
Update a portal guide. Published guide changes reach matching customer portals immediately.

patch_portal_offer

ChatGPT
Update a portal offer definition. Saved customer portals that reference this offer receive the new values.

patch_portal_template

ChatGPT
Update selected portal template sections. Existing customer portal sessions keep their saved snapshot.

patch_skill

ChatGPT
Update mutable workspace agent skill fields.

patch_verification_rule

ChatGPT
Update a portal verification rule. The step type cannot change, so a supplied config must match the type the rule already has.

patch_voice_agent

ChatGPT
Update mutable voice agent fields (name, prompt, welcome message, voice tuning, escalation, tag inheritance, inbound schedule). Only the fields you send change; the rest are preserved.

pause_contact_ai

ChatGPT
Pause AI responses for a contact indefinitely or for 30 or 60 minutes.

present_booking_checkout

ChatGPT
Present a validated property booking link and hold summary after availability and guest counts are confirmed. This tool does not create a reservation or hold; the customer skill must do that through its PMS first.

preview_workflow_clone

ChatGPT
Preview a same- or cross-workspace workflow clone. Inventories public resource dependencies and protected secret paths, validates explicit cross-workspace resource mappings and provider_config_overrides, and reports unresolved references without writing. Provider overrides must match the exact required provider/path pair, replace target-specific provider metadata, and should preserve source resource IDs for resource_mappings or omit optional connections.

preview_workflow_edits

ChatGPT
Plan update_step, patch_step_config, retarget_step_reference, insert_linear_step, and guarded delete_isolated_step operations against an exact immutable base version. retarget_step_reference changes typed step-output references without exposing surrounding protected HTTP values. Makes no writes and returns current heads, a canonical diff, a redacted candidate byte estimate, strict validation plus legacy-compatibility gates, and the result hash required by apply_workflow_edits.

propose_drive_split_mapping

ChatGPT
Read a spreadsheet knowledge source and rank the ways it could be split into one knowledge node per listing, subunit or group. Returns the sheet's columns, the ranked candidate mappings scored against every row, the listings, subunits and groups available to map onto, and any mapping already saved. Call this before set_drive_split_mapping.

query_insights

ChatGPT
Execute a BigQuery query, render the result as a chart image, and store durable chart state for later PDF export. Use this before generate_pdf when the PDF should include a chart via [[chart:<chart_id>]]. Call describe_bigquery_tables first to discover exact column names, and alias columns to the well-known keys the chosen visualization needs (line: date+value; metric: value; bar/horizontal-bar: name+value; heatmap: hour+day+value; funnel: name+stage columns). Only SELECT statements are allowed; workspace scoping and deleted-record filtering are injected automatically. When retrying or fixing a chart query, pass chart_id from the previous result to replace it instead of creating a duplicate.

register_portal_listing_upload

ChatGPT
Validate and register an uploaded image or video for one portal listing. Pass storage_id from the upload response. Then reference it as storageId in update_portal_listing_field's document. Media already registered to another workspace or listing is rejected. Requires Portals access, ManageProperties permission, and write access.

remove_contact_channel

ChatGPT
Remove an email address, phone number, WhatsApp number, or Instagram handle from a contact. If the address has conversation history, those conversations move off this contact: a phone, WhatsApp, or Instagram history moves to a new Unmapped contact, and email threads return to Unmapped. An email with 50 or more conversations is rejected with a conflict and must be removed in the Conduit inbox. Returns the contact with its remaining channels.

remove_ticket_tag

ChatGPT
Remove a conversation tag from a ticket. Tags are stored on the ticket's contact, so this removes it from every ticket of that contact. Removing a tag that is not present is a no-op. Returns the contact's current tags.

rename_directory

ChatGPT
Rename a directory or update its enabled state and tags.

reopen_ticket

ChatGPT
Reopen a resolved ticket and move its contact back to todo.

reorder_portal_guides

ChatGPT
Set the display order for all non-archived portal guides. Include every non-archived guide exactly once.

reorder_verification_rules

ChatGPT
Set the evaluation order for every verification rule in the workspace. Include every rule exactly once. Stacking steps (agreements, mandatory fees, question sets, custom field gates) are kept in this order within their step type; for other step types the first enabled matching rule claims its slot.

reschedule_appointment

ChatGPT
Reschedule an existing appointment to a new time.

resolve_escalation

ChatGPT
Resolve a chat escalation, moving it into a terminal reviewed state (resolved by default) and recording the reviewer.

resolve_ticket

ChatGPT
Resolve a ticket. If it is the contact's last active ticket, the contact is marked done.

respond_to_reservation_alteration

ChatGPT
Accept or decline a pending guest-requested Airbnb reservation alteration. An accepted change applies on Airbnb and can change reservation dates, guest counts, charges, or refunds. A declined change leaves the original reservation unchanged.

restore_portal_guide

ChatGPT
Restore an archived portal guide as a draft.

restore_portal_offer

ChatGPT
Restore an archived portal offer without adding it to portal templates.

restore_portal_template

ChatGPT
Restore an archived portal template as a draft.

resume_contact_ai

ChatGPT
Resume AI responses for a contact.

schedule_cancel

ChatGPT
Cancel a schedule you created (one-shot or recurring) by its id, to call off a planned revisit to this conversation. Returns cancelled: false when no matching schedule exists for this session.

schedule_cron

ChatGPT
Schedule a recurring future run of yourself to revisit this conversation on a schedule. Each firing resumes your originating session with the stored prompt and no new incoming message. Decide then whether a self-initiated reply is warranted (the proactive disposition) or whether to stay silent. Only schedule when explicitly asked to follow up on a schedule, for example 'every weekday at 9am'. Runs in the workspace timezone.

schedule_list

ChatGPT
List the schedules you have created in this session (both wake and cron), to review what is already scheduled for this conversation. Use the schedule_id values with schedule_cancel.

schedule_wake

ChatGPT
Schedule a one-shot future run of yourself to revisit this conversation later. When it fires, your session resumes with the stored prompt and no new incoming message. Decide then whether a self-initiated reply is warranted (the proactive disposition) or whether to stay silent. Only schedule when explicitly asked to follow up at a later time, for example 'check back in 2 days'.

search_contacts

ChatGPT
Search contacts by name, email, phone, WhatsApp, or channel value.

search_conversations

ChatGPT
Search conversations by contact identity or message body text.

search_drive_files

ChatGPT
Search your Google Drive for files by name or content. Use this to find a file before importing it into the knowledge base with import_drive_file. Results carry supported_for_import, which tells you whether that file can be imported at all.

search_listing_availability

ChatGPT
Discover confirmed available listings across a workspace, within a city, or near a known listing for one checkout-exclusive date range. Use check_listing_availability instead when the listing is already known. A partial result means only the returned matches are confirmed; it does not prove the rest of the workspace is unavailable. Continue with next_cursor when coverage is partial and a cursor is returned. Availability only means every requested calendar night is open; it does not confirm all booking rules.

search_tickets

ChatGPT
Search tickets by subject, contact, channel, or message.

search_workspace_users

ChatGPT
Find workspace members by partial name or email. Each row carries two distinct ids: id (the user id) and member_id (the workspace member id). Task assignment takes member_id, not id. For scheduling, set include_work_hours: true to read weekly schedules with the roster.

send_conversation_message

ChatGPT
Send a reply to a conversation thread.

send_message

ChatGPT
Send a message to a contact, ticket, conversation, or raw address as the running agent. Provide exactly one target: contact_id, ticket_id, conversation_id, or to. For existing tickets/conversations, omit channel unless you need a specific channel. For raw phone numbers, channel must be sms or whatsapp; raw email addresses default to email. Returns blocked instead of throwing when delivery is disallowed by local safety or channel rules.

send_system_email

ChatGPT
Send an email from a Conduit-owned system address (reports@conduitalert.com). Unlike send_conversation_message, this does NOT require the workspace to have its own email sender (Postmark/Gmail) connected, so use it whenever you need to send but no sender is available. It sends FROM Conduit rather than the customer's own inbox and does not create a contact thread, so it fits reports, summaries, notifications, alerts, and other one-off system emails. Use send_conversation_message instead for contact/guest-facing replies that should come from the customer's own verified sender. Provide a subject and either body (plain text) or html_body (pre-rendered HTML). Replies go to Conduit, not the customer, so set reply_to if responses should reach a real inbox. Returns blocked instead of throwing when the send is disallowed by validation or run state.

send_ticket_message

ChatGPT
Send a reply to a ticket thread. Optional attachments must first be uploaded through the public API upload-url flow, then passed as attachment metadata.

set_agent_skill_access

ChatGPT
Assign or remove one workspace skill without changing the agent's other skill assignments.

set_drive_split_mapping

ChatGPT
Save a split-by-listing mapping on a knowledge source that is waiting for one, then start the import it has been holding. Call propose_drive_split_mapping first to see the columns and candidates. Only a source whose awaiting_mapping is true can be mapped here; re-mapping a source that already imported is not supported.

set_knowledge_scope

ChatGPT
Replace the entity scope owned by one knowledge file.

set_knowledge_source_sync

ChatGPT
Put a knowledge source on an auto-sync cadence so Conduit re-imports it on a schedule. Only sources imported through a connected provider (Google Drive, Notion, Airtable, a link, or a PMS) can auto-sync. Use cancel_knowledge_source_sync to turn it off.

set_listing_active

ChatGPT
Activate or deactivate up to 50 workspace listings as one audited request. Run with dry_run true first to preview each listing's before and after state and any reservation warnings, then repeat with dry_run false to apply it. Already-matching listings are unchanged and do not create audit events. Requires a read-write credential and the Manage Properties permission.

set_lock_state

ChatGPT
Lock or remotely unlock a smart lock. Locking is routine; remote unlock is refused unless the workspace's device policy explicitly allows it. The command is sent to the physical device.

set_member_work_hours

ChatGPT
Replace a workspace member's weekly work hours and timezone, preserving time off. Empty schedule means unrestricted hours. Human callers can access their own hours; accessing another member requires Manage Members, Manage Calendars, or Manage Assignment Schedule.

set_noise_threshold

ChatGPT
Configure a noise-monitoring threshold on a noise sensor — programs the physical sensor via the device provider with a daily quiet window (start/end as HH:MM local time) and a limit as decibels and/or a Noise Risk Score (provide at least one). Use it to set up quiet hours for a property (e.g. after a noise complaint or a party-risk booking); a later breach raises a security task for the operations team. Subject to the workspace's device policy.

set_thermostat

ChatGPT
Set a thermostat's HVAC mode (heat, cool, heat_cool, or off) and optionally its target temperature in Celsius — the command programs the physical unit via the device provider. Use it to make a unit comfortable before arrival (pre-cool/pre-heat), respond to a too-hot/too-cold report, or set back an empty unit. Target must be within the 10–32°C safe band. Check the current climate state first with get_device_telemetry. Subject to the workspace's device policy.

set_ticket_follow_up

ChatGPT
Put an open ticket on follow-up (snooze) until a future time. It leaves the actionable queue until then, or until the contact writes again. Replaces any follow-up already set. Resolved, closed, and merged tickets are refused.

task_add_comment

ChatGPT
Add a comment to a task's activity timeline to record context or progress.

task_add_requirements

ChatGPT
Add requirements to a task using labels or typed items: check, yes_no, text, number, or rating. Any item type can require a photo. Existing labels are skipped, so retries do not create duplicates.

task_attach_image

ChatGPT
Attach an externally hosted image to a task. Use task_prepare_image_upload for a local image, or task_attach_message_media when the image came from a conversation message.

task_attach_message_media

ChatGPT
Copy photos or files from a conversation message onto a task. Omit attachment filters to copy every file on the message.

task_automation_create

ChatGPT
Create a reservation task automation anchored to check-in or checkout. Select checklist_template_id to inherit all task properties; task-property overrides are rejected. Without a template, category_id is required and task properties belong to this rule. listing_ids filters properties; enabled defaults to true. Estimated time is optional. Checklist items support check, yes_no, text, number, or rating; only check items can require photos.

task_automation_delete

ChatGPT
Delete a task automation. Existing tasks remain unless delete_upcoming_tasks is explicitly true.

task_automation_list

ChatGPT
List reservation and repeating task automations, including checklist template IDs and property scopes.

task_automation_set_enabled

ChatGPT
Enable or disable a reservation task automation. When disabling, optionally delete upcoming unstarted schedule-owned tasks. Re-enabling does not restore deleted tasks.

task_automation_update

ChatGPT
Update a reservation task automation anchored to check-in or checkout. Omitted fields stay unchanged; nullable fields can be cleared. Template rules reject task-property overrides, including when checklist_template_id is omitted. Edit the template, or set checklist_template_id to null to use custom task properties. The rule controls its name, schedule, and listing_ids filter. Estimated time is optional. Checklist items support check, yes_no, text, number, or rating; only check items can require photos.

task_category_create

ChatGPT
Create a task category in the workspace. Names must be unique among active categories. Read categories with task_list_categories. Optional role_ids control planning visibility; empty means all roles.

task_category_get

ChatGPT
Read a task category's full settings by ID, including manual-only categories. Missing optional settings inherit workspace defaults.

task_category_set_roles

ChatGPT
Set which workspace roles appear in task planning for a category. Use role IDs from list_workspace_roles. Pass an empty role_ids array for all roles. This controls planning visibility, not assignment permissions.

task_category_update

ChatGPT
Edit task category settings. Omit fields to leave them unchanged; null completion status or Slack routing restores the workspace default. Read current settings with task_category_get.

task_create

ChatGPT
Create a task with its category, priority, assignee, due date, charge rate, total charge, custom fields, and reservation or property context. New tasks default to Triage for human approval; only set status_id when the user explicitly requests another status. First use task_list with the relevant reservation, property, or contact; if the issue already has a task, use task_update. Include source_message_ids for conversation-based requests. requirements accepts check, yes_no, text, number, and rating items.

task_delete

ChatGPT
Soft-delete a duplicate or mistaken task. To finish real work, use task_update_status to complete or cancel it.

task_edit_requirement

ChatGPT
Edit a checklist item label, type, or photo requirement in one atomic call. Supply at least one field; omitted fields stay unchanged. Type changes clear the answer and completion. Requiring a photo clears completion when evidence is missing. Use task_set_requirement for answers and completion.

task_finalize_image_upload

ChatGPT
Attach an image uploaded through task_prepare_image_upload to the task. Pass the storageId returned by the upload response and the file name to show on the task.

task_get

ChatGPT
Get one task's full details, checklist, attachments, custom field values, and recent activity.

task_list

ChatGPT
Find tasks by property, reservation, contact, category, assignee, status, time, or text. Filter on the server instead of listing everything, and check here before task_create to avoid duplicates.

task_list_categories

ChatGPT
List valid task categories and IDs, including planning role_ids. Empty role_ids means all roles. Pass contact_id when categories depend on the contact's inbox.

task_list_custom_fields

ChatGPT
List task custom fields, IDs, types, and Select options before writing custom_field_values.

task_list_statuses

ChatGPT
List task status IDs and behavior categories before using a workspace-defined status.

task_prepare_image_upload

ChatGPT
Prepare to attach a local or chat-uploaded image to a task. POST the raw file bytes to the returned Convex upload URL, read storageId from the JSON response, then call task_finalize_image_upload.

task_property_apply_template

ChatGPT
Attach a task template to a property. Returns its property checklist ID.

task_property_create_area

ChatGPT
Create a custom area for property checklist sections.

task_property_create_item

ChatGPT
Create or reuse a workspace item name (for example, Sink or Microwave). Use the returned ID as itemGroups[].itemId in sections or rooms; checklist steps belong to each placement. Names are deduplicated ignoring case and outer whitespace.

task_property_list_category_assignees

ChatGPT
List preferred task assignees by category for a property.

task_property_list_checklists

ChatGPT
List property checklists with resolved inherited or overridden sections, template item IDs and assignee details.

task_property_remove_template

ChatGPT
Remove a template mapping and its overrides from a property; keep the root template.

task_property_set_category_assignee

ChatGPT
Set the property preferred assignee for a task category; null clears the preference.

task_property_set_checklist_assignee

ChatGPT
Set the preferred assignee for a property checklist; null restores fallback assignment.

task_property_set_checklist_estimated_time

ChatGPT
Set estimated minutes for a property checklist; null restores the template duration.

task_property_update_checklist

ChatGPT
Update property-specific additional description, sections, estimated minutes, or charge rate. Additional description appends to the live template description for future tasks without changing the template. Omit a field to leave it unchanged; null clears its override. Rate amounts are whole cents with hour or piece basis. Existing task snapshots stay unchanged unless update_existing_tasks is true.

task_recurring_automation_create

ChatGPT
Create a repeating task automation. Select checklist_template_id to inherit all task properties; task-property overrides are rejected. Without a template, category_id is required and task properties belong to this rule. listing_ids filters properties; enabled defaults to true. Estimated time is optional. Checklist items support check, yes_no, text, number, or rating; only check items can require photos.

task_recurring_automation_set_enabled

ChatGPT
Enable or disable a repeating task automation. Re-enabling recomputes its next run.

task_recurring_automation_update

ChatGPT
Update a repeating task automation. Omitted fields stay unchanged; nullable fields can be cleared. Template rules reject task-property overrides, including when checklist_template_id is omitted. Edit the template, or set checklist_template_id to null to use custom task properties. The rule controls its name, schedule, and listing_ids filter. Estimated time is optional. Checklist items support check, yes_no, text, number, or rating; only check items can require photos.

task_remove_requirement

ChatGPT
Remove one checklist item from a task. Other item IDs, answers and completion states remain unchanged.

task_resolve_send_target

ChatGPT
Resolve the current task assignee to a safe send_message target. Use this instead of matching people by name.

task_set_assignee

ChatGPT
Set a task's complete team with assignees, including members and contacts. Use [] to clear everyone. The older member_id input remains supported for a single member. This may notify newly assigned people but does not send work orders.

task_set_custom_fields

ChatGPT
Update only a task's custom fields. Use field IDs and value types from task_list_custom_fields; unspecified fields stay unchanged. task_update can change custom and standard fields together.

task_set_due_at

ChatGPT
Set a task deadline with an ISO 8601 datetime, or pass null to remove the pinned deadline.

task_set_estimated_time

ChatGPT
Set an existing task's estimated duration in whole minutes. Zero is allowed; null clears the estimate.

task_set_requirement

ChatGPT
Update a requirement type, save or clear a typed answer, or set a check item complete/incomplete. Get requirement_id and type from task_get. Type changes clear the previous answer.

task_template_create

ChatGPT
Create a task template. listing_ids optionally maps it to properties. Items support type check, yes_no, text, number, or rating; only check items can require photos.

task_template_create_area

ChatGPT
Create a custom area for task template sections.

task_template_create_item

ChatGPT
Create or reuse a workspace item name (for example, Sink or Microwave). Use the returned ID as itemGroups[].itemId in sections or rooms; checklist steps belong to each placement. Names are deduplicated ignoring case and outer whitespace.

task_template_delete

ChatGPT
Delete a task template using the same usage guards as the app.

task_template_list

ChatGPT
List task templates, their sections and property mappings.

task_template_list_areas

ChatGPT
List area IDs usable in template and property sections.

task_template_list_items

ChatGPT
List reusable workspace item names and IDs for itemGroups in template and property sections or rooms.

task_template_update

ChatGPT
Replace template details and sections. Omit listing_ids to keep mappings; provide an empty array to remove all mappings. Items support type check, yes_no, text, number, or rating; only check items can require photos.

task_update

ChatGPT
Update an existing task's title, description, category, priority, assignee, due date, charge rate, total charge, custom fields, or reservation/property context. Use this instead of task_create when the same issue already has a task. Use task_update_status for lifecycle status changes.

task_update_status

ChatGPT
Move a task to another status, including completed or cancelled. Use status_id for workspace-defined lanes from task_list_statuses.

update_access_code

ChatGPT
Update access-code digits or start/end times. Omitted fields stay unchanged. Online time-bound codes support schedule edits; offline codes do not. Automatic guest schedules apply to every lock on the reservation and persist until reservation dates or the property change. Schedule edits require an operator; contact-facing agents must request operator approval. Supply at least one field. Digits must contain 4 to 9 numerals. Changes are asynchronous. Read get_access_code after editing: digits require status set. For schedule changes, wait for windowSyncStatus updated. This confirms provider synchronization, not a physical access check.

update_portal

ChatGPT
Update the offers shown by an existing active portal session without changing the portal link. Pass the session_id from get_portal or get_customer_portals as portal_session_id. Add/remove offers by ID from list_portal_offers. highlight_offer_id persists by making that offer the featured portal offer. Purchased or in-progress checkout offers cannot be removed.

update_portal_listing_field

ChatGPT
Edit one guest portal field for a property, such as wifi name or password, door code, check-in or check-out time or instructions, parking, house rules, house manual, directions, area description, trash, address, map links, or portal name. Sets a portal-only override; PMS data and other fields stay unchanged, and reset removes the override. Send a plain value, or the complete rich-text document including images to keep. Register new media first. Requires Portals access, ManageProperties permission, and write access. Changes affect portals using this listing.

update_ticket_note

ChatGPT
Update an internal note attached to a ticket.

update_workflow

ChatGPT
Replace a workflow's definition by creating a NEW version under the same workflow (the old version is never mutated in place). The intended loop is get_workflow -> mutate the JSON -> update_workflow. New version is DRAFT unless activate is true. Config fields whose value is the redaction placeholder are preserved from the current version.

close_ticket

Claude

create_agent

Claude

create_contact

Claude

create_knowledge_node

Claude

create_skill

Claude

create_ticket_note

Claude

delete_agent

Claude

delete_knowledge_node

Claude

delete_skill

Claude

delete_ticket_note

Claude

get_agent

Claude

get_appointment

Claude

get_call

Claude

get_contact

Claude

get_contact_custom_attributes

Claude

get_conversation

Claude

get_helpdesk_ticket

Claude

get_knowledge_node

Claude

get_reservation

Claude

get_skill

Claude

get_ticket

Claude

get_ticket_note

Claude

list_agents

Claude

list_appointments

Claude

list_calls

Claude

list_contact_appointments

Claude

list_contact_calls

Claude

list_contact_helpdesk_tickets

Claude

list_contact_reservations

Claude

list_contact_tickets

Claude

list_contacts

Claude

list_conversation_messages

Claude

list_conversations

Claude

list_custom_attributes

Claude

list_escalations

Claude

list_helpdesk_tickets

Claude

list_knowledge_nodes

Claude

list_reservations

Claude

list_skills

Claude

list_ticket_messages

Claude

list_ticket_notes

Claude

list_tickets

Claude

list_workspace_senders

Claude

list_workspace_users

Claude

list_workspace_whatsapp_templates

Claude

list_workspaces

Claude

patch_agent

Claude

patch_contact

Claude

patch_contact_custom_attributes

Claude

patch_skill

Claude

reopen_ticket

Claude

resolve_ticket

Claude

search_contacts

Claude

search_conversations

Claude

search_knowledge

Claude

search_knowledge_nodes

Claude

search_tickets

Claude

search_workspace_users

Claude

send_contact_message

Claude

send_conversation_message

Claude

send_ticket_message

Claude

update_knowledge_node

Claude

update_ticket_note

Claude

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

Similar Apps