Back

Vitally

Manage customer accounts, health, and tasks.

MCP server URL

https://vitally.gumstack.com/mcp

Works with

Tools 19

  • List Objects

    List the workspace's configuration objects of a given `objectType` and return their IDs. Returns each object's `id` and `name`, and a `nextCursor` when more are available; pass it back as `pagination.cursor` to load more (`null` = exhausted). Use this to resolve the ID another tool's input requires, for example the `customObjectTypeId` that `search_custom_objects`, `create_custom_object`, and `search_object_properties` take. Supported `objectType` values: - `AccountKeyRole` — the workspace's key roles for `Account` team assignments. Use the returned `id` wherever an `Account` key role ID is required. - `CustomObjectType` — the workspace's `CustomObject` types. Each carries a `description`. Use the returned `id` wherever a `CustomObject` type ID (`customObjectTypeId`) is required. - `NoteCategory` — the workspace's `Note` categories. Use the returned `id` wherever a `Note` category ID (`noteCategoryId`) is required. - `NoteTag` — the workspace's `Note` tags. Each carries `color`. Use the returned `id`s when a tool input takes `Note` tag IDs. - `OrganizationKeyRole` — the workspace's key roles for `Organization` team assignments. Use the returned `id` wherever an `Organization` key role ID is required. - `ProjectCategory` — the workspace's `Project` categories. Use the returned `id` wherever a `Project` category ID (`projectCategoryId`) is required. - `ProjectStatus` — the workspace's `Project` statuses. Each carries `type` (`active`, `inactive`, or `complete`), `isDefaultStatus`, and `requiresAllTasksCompleted` (a complete status that requires every task to be done first). Use the returned `id` wherever a `Project` status ID (`projectStatusId`) is required. - `TaskCategory` — the workspace's `Task` categories. Use the returned `id` wherever a `Task` category ID (`taskCategoryId`) is required. - `TaskStatus` — the workspace's `Task` statuses. Each carries `type` (`active`, `inactive`, or `complete`) and `isDefaultStatus`. Use the returned `id` wherever a `Task` status ID (`taskStatusId`) is required. - `TaskTag` — the workspace's `Task` tags. Each carries `color`. Use the returned `id`s when a tool input takes `Task` tag IDs.

  • Retrieve Content

    Retrieve embedded content (notes, meetings, conversations, and more) for a subject record to answer a question about it. Analytical workflow: (1) use `search_*` tools to find relevant records, (2) call `retrieve_content` on each relevant record to pull its actual substance, (3) synthesize from that content — not from metadata alone. Skipping step 2 produces shallow, title-only answers. Scopes: pass one entry per kind of content to search. `Document` covers documents and their pages. For custom object content add a `CustomObject` entry with the `customObjectTypeId` of the type, one entry per type. Custom-object types with retrievable content (pass `id` as `customObjectTypeId`): - `c87cc761-1e75-40da-8a73-ffa0be0663db`: Alpha/Beta Testing (name: `alphaBetaTesting`) - `2154562b-6032-494a-ae7d-d60e04603d60`: Credit Note Request (License) (name: `creditNoteRequestLicense`) - `1ca874b8-7c59-476b-ae83-e1a83f94e049`: Customer KPIs (name: `customerKpIs`) - `86fbfe49-2a50-44d2-8e54-bf7f90d364c1`: Customer Visit Request (name: `customerVisitRequest`) - `c013b086-d568-4d0a-b13e-936b654b6674`: Feature Request (name: `featureRequest`) — Goal Identify, summarize, and structure any Triptease-related Product Feature Requests discussed in a call transcript, meeting, or email thread. The AI... - `e51cacee-7c84-4a41-893f-ddb142e5328a`: Lead (name: `Lead`) — Goal Identify and document a potential expansion or upsell Lead based on customer discussions in a meeting transcript, call notes, or email thread. The AI... - `d0c8d256-3f12-4d52-9127-f90c6a6be705`: Opportunity (name: `Opportunity`) - `a2c56527-7f81-4006-81dd-c218d02cab22`: Pulse Check (name: `pulseCheck`) — A Pulse Check captures the client’s current sentiment at a specific point in time (e.g., after a call, meeting, or email). Team members are expected to... - `a1ec5204-9516-48f5-b655-cefff490211a`: Subscriptions (name: `subscriptions`) Time range rules: - **Explicit or Implicit Date Range Present** If the question clearly specifies a time range (explicitly like "in Q1 2024" or implicitly like "last year"), extract and return `contentStartsAt` and `contentEndsAt` (ISO 8601). - **Clearly About Recent Trends or Current Status** If the question clearly asks about the current situation or trends (e.g., "what's the sentiment lately?"), return the range from 3 months ago to today. - **Default: No Clear Timeframe** If there is no explicit or implied date range, or if unsure, return (`contentStartsAt`: NULL, `contentEndsAt`: NULL)

  • Search Accounts

    Search `Account` records by their properties and return resolved values for each match. This workspace calls Accounts "Hotel". Common uses: - Find an `Account` by name: `query.where.filters.primary` with a `name` clause (e.g. operator `contains`, value "Acme"). - List or rank `Account`s: combine `query.where.filters` with `query.sort` (e.g. sort by health score ascending for at-risk `Account`s). - Narrow by parent `Organization`: use `query.where.filters.organization`. Filter scopes: `primary` (the `Account`'s own fields) and `organization` (its parent `Organization`). Properties: `query.properties` is required — specify which columns to return. `Account`s carry a broad dataset beyond identity/health: revenue (MRR/ARR, renewal & trial dates, status), NPS, activity counts & recency (users, tasks, projects, notes, conversations, messages), assigned CSM/AE/owner, segments, plus owner-configured custom fields, firmographic enrichment, product event counts & last-seen, success metrics, risk/opportunity indicators, playbooks, health categories, key roles, and linked custom objects. Use `search_object_properties` for `Account` to discover exact keys before referencing them here (and in filters or sort). Pagination: pass the returned `nextCursor` back as `pagination.cursor` to load more (`null` = exhausted).

  • Search Conversations

    Search `Conversation` records by their properties and return resolved values for each match. Common uses: - Find recent `Conversation`s: `query.where.filters.primary` on `lastMessageTimestamp` or `createdAt`, sorted descending. - List `Conversation`s for an `Account`: use `query.where.filters.account` with an `Account` filter. - Narrow by related `Account`: use `query.where.filters.account` (e.g. filter on `Account` name or health score). - Narrow by related `Organization`: use `query.where.filters.organization`. Filter scopes: `primary` (the `Conversation`'s own fields), `account` (its related `Account`), and `organization` (its related `Organization`). Properties: `query.properties` is required — specify which columns to return. `Conversation`s include subject, status, message counts and timestamps, email engagement (opens, clicks, bounces, replies), linked `Account`s and `Organization`s, assignee and initiator, source, creator, outbound template, playbook/action IDs, and conversation custom fields. Use `search_object_properties` for `Conversation` to discover exact keys before referencing them here (and in filters or sort). Pagination: pass the returned `nextCursor` back as `pagination.cursor` to load more (`null` = exhausted).

  • Search Custom Objects

    Search `CustomObject` instances by their properties and return resolved values for each match. Custom-object types in this workspace (pass `id` as `customObjectTypeId`): - `c87cc761-1e75-40da-8a73-ffa0be0663db`: Alpha/Beta Testing (name: `alphaBetaTesting`) - `2154562b-6032-494a-ae7d-d60e04603d60`: Credit Note Request (License) (name: `creditNoteRequestLicense`) - `1ca874b8-7c59-476b-ae83-e1a83f94e049`: Customer KPIs (name: `customerKpIs`) - `86fbfe49-2a50-44d2-8e54-bf7f90d364c1`: Customer Visit Request (name: `customerVisitRequest`) - `c013b086-d568-4d0a-b13e-936b654b6674`: Feature Request (name: `featureRequest`) — Goal Identify, summarize, and structure any Triptease-related Product Feature Requests discussed in a call transcript, meeting, or email thread. The AI... - `e51cacee-7c84-4a41-893f-ddb142e5328a`: Lead (name: `Lead`) — Goal Identify and document a potential expansion or upsell Lead based on customer discussions in a meeting transcript, call notes, or email thread. The AI... - `d0c8d256-3f12-4d52-9127-f90c6a6be705`: Opportunity (name: `Opportunity`) - `a2c56527-7f81-4006-81dd-c218d02cab22`: Pulse Check (name: `pulseCheck`) — A Pulse Check captures the client’s current sentiment at a specific point in time (e.g., after a call, meeting, or email). Team members are expected to... - `a1ec5204-9516-48f5-b655-cefff490211a`: Subscriptions (name: `subscriptions`) Common uses: - Find custom object instances by name: `query.where.filters.primary` with a `name` clause. - List instances for an `Account`: use `query.where.filters.account` with an `Account` filter. - Narrow by related `Account`: use `query.where.filters.account` (e.g. filter on `Account` name or health score). - Narrow by related `Organization`: use `query.where.filters.organization`. Filter scopes: `primary` (the `CustomObject`'s own fields), `account` (its related `Account`), and `organization` (its related `Organization`). Properties: `query.properties` is required — specify which columns to return. `CustomObject` instances expose name, external ID, timestamp, owner, linked `Account`s/`Organization`s, source, creator, and per-object-type custom fields. Use `search_object_properties` for `CustomObject` (with the same `customObjectTypeId`) to discover exact keys before referencing them here (and in filters or sort). Pagination: pass the returned `nextCursor` back as `pagination.cursor` to load more (`null` = exhausted).

  • Search Docs

    Search `CollabDoc` records by their properties and return resolved values for each match. Common uses: - Find recent docs: `query.where.filters.primary` on `updatedAt` or `createdAt`, sorted descending. - List docs for an `Account`: use `query.where.filters.account` with an `Account` filter. - Narrow by related `Account`: use `query.where.filters.account` (e.g. filter on `Account` name or health score). - Narrow by related `Organization`: use `query.where.filters.organization`. Filter scopes: `primary` (the `CollabDoc`'s own fields), `account` (its related `Account`), and `organization` (its related `Organization`). Properties: `query.properties` is required — specify which columns to return. `CollabDoc`s expose name, created/updated timestamps, creator, linked `Account`/`Organization`, collab doc template and when it was set, tags, last viewed by external user, and playbook/action IDs. Use `search_object_properties` for `CollabDoc` to discover exact keys before referencing them here (and in filters or sort). For doc body content, use `retrieve_content` instead. Pagination: pass the returned `nextCursor` back as `pagination.cursor` to load more (`null` = exhausted).

  • Search Goals

    Search `Goal` records by their properties and return resolved values for each match. Common uses: - Find at-risk `Goal`s: `query.where.filters.primary` on `percentComplete` or `deadline`, sorted by deadline ascending. - List `Goal`s for an `Account`: use `query.where.filters.account` with an `Account` filter. - Narrow by related `Account`: use `query.where.filters.account` (e.g. filter on `Account` name or health score). - Narrow by related `Organization`: use `query.where.filters.organization`. Filter scopes: `primary` (the `Goal`'s own fields), `account` (its related `Account`), and `organization` (its related `Organization`). Properties: `query.properties` is required — specify which columns to return. `Goal`s include name, status, deadline, overall percent complete, owner and creator, linked `Account`/`Organization`, goal template, and playbook/action IDs. Use `search_object_properties` for `Goal` to discover exact keys before referencing them here (and in filters or sort). Per-metric progress keys only show up there with a `goalTemplateId`. They can be returned but not filtered or sorted on, and are `null` for `Goal`s of other templates, so filter on `templateId` when asking about one template. Pagination: pass the returned `nextCursor` back as `pagination.cursor` to load more (`null` = exhausted).

  • Search Indicators

    Search `Indicator` records by their properties and return resolved values for each match. Common uses: - Find long-running `Indicator`s: `query.where.filters.primary` on `startDate` with a past-date operator. - List `Indicator`s for an `Account`: use `query.where.filters.account` with an `Account` filter, sorted by `startDate`. - Narrow by related `Account`: use `query.where.filters.account` (e.g. filter on `Account` name or health score). - Narrow by related `Organization`: use `query.where.filters.organization`. Views: `query.where.primaryView` — Which `Indicator`s to search: `active` (still open), `ended`, or `all`. Omit to search the `active` view. Filter scopes: `primary` (the `Indicator`'s own fields), `account` (its related `Account`), and `organization` (its related `Organization`). Properties: `query.properties` is required — specify which columns to return. `Indicator`s expose playbook/indicator reference, linked `Account`/`Organization`, type, start/end/addressed dates, assigned and addressed-by users, and playbook action ID. Use `search_object_properties` for `Indicator` to discover exact keys before referencing them here (and in filters or sort). Pagination: pass the returned `nextCursor` back as `pagination.cursor` to load more (`null` = exhausted).

  • Search Meetings

    Search `Meeting` records by their properties and return resolved values for each match. Common uses: - Find `Meeting`s by date range: `query.where.filters.primary` on `start` or `end` with a date operator. - List `Meeting`s for an `Account`: combine `query.where.filters.account` with `query.sort` by `start`, and set `query.where.primaryView` to `upcoming` or `past` to restrict to one side of today. - List for participants: `query.where.filters.primary` on `participants` with a team member's UUID, user's UUID, or email address. - Narrow by related `Account`: use `query.where.filters.account` (e.g. filter on `Account` name or health score). - Narrow by related `Organization`: use `query.where.filters.organization`. Views: `query.where.primaryView` — Which `Meeting`s to search: `upcoming` (ends now or later), `past` (already ended), or `all`. Omit to search the `all` view. Filter scopes: `primary` (the `Meeting`'s own fields), `account` (its related `Account`), and `organization` (its related `Organization`). Properties: `query.properties` is required — specify which columns to return. `Meeting`s expose title, start/end dates and times, recurrence, organizer and participant emails, linked `Account`s and `Organization`s, recording URL, AI summary, and meeting custom fields. Use `search_object_properties` for `Meeting` to discover exact keys before referencing them here (and in filters or sort). Pagination: pass the returned `nextCursor` back as `pagination.cursor` to load more (`null` = exhausted).

  • Search Notes

    Search `Note` records by their properties and return resolved values for each match. Common uses: - Find recent `Note`s: `query.where.filters.primary` on `noteDate` or `createdAt`, sorted descending. - List `Note`s for an `Account`: use `query.where.filters.account` with an `Account` filter. - Narrow by related `Account`: use `query.where.filters.account` (e.g. filter on `Account` name or health score). - Narrow by related `Organization`: use `query.where.filters.organization`. Filter scopes: `primary` (the `Note`'s own fields), `account` (its related `Account`), and `organization` (its related `Organization`). Properties: `query.properties` is required — specify which columns to return. `Note`s expose subject, note date, created/updated timestamps, author, linked `Account`/`Organization`, source, note category, tags, and note custom fields. Use `search_object_properties` for `Note` to discover exact keys before referencing them here (and in filters or sort). For note body content, use `retrieve_content` instead. Pagination: pass the returned `nextCursor` back as `pagination.cursor` to load more (`null` = exhausted).

  • Search Nps Responses

    Search `NpsResponse` records by their properties and return resolved values for each match. Common uses: - Find detractor `NpsResponse`s: `query.where.filters.primary` on `score` with a less-than operator (e.g. score < 7). - List recent `NpsResponse`s for an `Account`: use `query.where.filters.account` combined with `respondedAt` sort. - Narrow by related `Account`: use `query.where.filters.account` (e.g. filter on `Account` name or health score). - Narrow by related `Organization`: use `query.where.filters.organization`. Filter scopes: `primary` (the `NpsResponse`'s own fields), `account` (its related `Account`), and `organization` (its related `Organization`). Properties: `query.properties` is required — specify which columns to return. `NpsResponse`s include score, feedback text, responded-at timestamp, linked `User` (respondent name/email), and first associated `Account`/`Organization`. Use `search_object_properties` for `NpsResponse` to discover exact keys before referencing them here (and in filters or sort). Pagination: pass the returned `nextCursor` back as `pagination.cursor` to load more (`null` = exhausted).

  • Search Object Properties

    Call this before any `search_*` or `search_custom_objects` tool. It returns the available property keys, filter operands, and sort columns for an object type so you can reference them correctly in subsequent calls. Specify `object.type` (and `customObjectTypeId` for CustomObject) and a natural-language `searchQuery`. Results are similarity-ranked; rephrase if the first results are not what you need. Custom-object types in this workspace (pass `id` as `customObjectTypeId`): - `c87cc761-1e75-40da-8a73-ffa0be0663db`: Alpha/Beta Testing (name: `alphaBetaTesting`) - `2154562b-6032-494a-ae7d-d60e04603d60`: Credit Note Request (License) (name: `creditNoteRequestLicense`) - `1ca874b8-7c59-476b-ae83-e1a83f94e049`: Customer KPIs (name: `customerKpIs`) - `86fbfe49-2a50-44d2-8e54-bf7f90d364c1`: Customer Visit Request (name: `customerVisitRequest`) - `c013b086-d568-4d0a-b13e-936b654b6674`: Feature Request (name: `featureRequest`) — Goal Identify, summarize, and structure any Triptease-related Product Feature Requests discussed in a call transcript, meeting, or email thread. The AI... - `e51cacee-7c84-4a41-893f-ddb142e5328a`: Lead (name: `Lead`) — Goal Identify and document a potential expansion or upsell Lead based on customer discussions in a meeting transcript, call notes, or email thread. The AI... - `d0c8d256-3f12-4d52-9127-f90c6a6be705`: Opportunity (name: `Opportunity`) - `a2c56527-7f81-4006-81dd-c218d02cab22`: Pulse Check (name: `pulseCheck`) — A Pulse Check captures the client’s current sentiment at a specific point in time (e.g., after a call, meeting, or email). Team members are expected to... - `a1ec5204-9516-48f5-b655-cefff490211a`: Subscriptions (name: `subscriptions`) Workspace object names: - `Account` — called "Hotel" in this workspace - `Organization` — called "Client" in this workspace