← Back to all apps

Outreach

Productivityby Outreach Corporation
Launched May 15, 2026 on ChatGPTLaunched Feb 18, 2026 on Claude

Bring Outreach knowledge and actions into Claude so your teams can move faster, combine insights across systems, and complete advanced revenue tasks without switching tools. Outreach is an end-to-end AI Revenue Platform for all go-to-market teams. By embedding agentic AI across every revenue workflow, Outreach increases sales productivity, boosts pipeline, and gives leaders the visibility and predictability they need to grow revenue at scale.

39ChatGPT Tools
15Claude Tools
Outreach CorporationDeveloper
ProductivityCategory

Use Cases

sales-and-marketing

Available Tools

Account Answer Question

account_answer_question
Full Description

Answers questions about an account by searching and analyzing account record, meeting transcription, and other related data in the time range if specified. Example questions include:

  • What specific challenges or pain points is the account experiencing?
  • What are the desired outcomes or business goals the account aims to achieve?
Parameters (2 required, 2 optional)
Required
idinteger

ID of an account. Must be a positive integer.

questionstring

A specific question about the account to ask. Cannot be an empty string.

Optional
date_range_endstring

An optional end date to filter the account data.

Default: null
date_range_startstring

An optional start date to filter the account data.

Default: null

Creates a new account in Outreach

account_create
Full Description

Creates a new account in Outreach. The current user is automatically assigned as one of the account's assigned users. The current user is set as the owner if no owner is specified in the input. Returns the created account record including its id only.

IMPORTANT: Every field value used to create the account MUST be explicitly provided by the user. Never infer, guess, or fabricate field values. If the user has not supplied a value for a field, do not include that field.

ALWAYS call input_fields_fetch with resource="Account" and action="Create" before calling this tool. input_fields_fetch returns the full list of available standard fields, their types, and any required custom fields with validation rules. This ensures you know exactly which fields are available and which are required before creating the account.

Example: input: name: "Acme Corp" additional_fields:

  • field_name: "domain"

value: "acme.com"

  • field_name: "companyType"

value: "Enterprise"

  • field_name: "industry"

value: "Technology"

  • field_name: "custom1"

value: "NA"

Parameters (1 required)
Required
input

Input model containing account creation details. All values MUST come directly from the user. Never guess or fabricate any field value. ALWAYS call input_fields_fetch first to discover available additional fields and their types.

Get account using its unique identifier.

account_get_by_id
Full Description

Retrieve an account using its unique identifier and return the corresponding Account object which includes default fields: id, name, company_type, owner, touched_at, industry, default_connection

Use the additional_fields param to include additional account fields in the response. For custom fields (e.g. "Current CRM") which are not already included in the additional_fields parameter description or default fields, first call the filter_fields_fetch tool with entity_type="account" to discover relevant custom fields, then pass that ID (ex. "custom8") in additional_fields. Never guess custom field IDs. Only use when you know the corresponding label.

Note: This tool returns only summary information (id, name) for the owner. To get full details about the owner, use the user_get_by_id tool with the owner's id.

Parameters (1 required, 1 optional)
Required
idinteger

ID of an account (not an opportunity ID, prospect ID, or user ID). Must be a positive integer. Common sources: any tool result that returns an account object (account.id field), conversation context, or injected context from the UI.

Optional
additional_fieldsarray

Extra account fields to fetch. Pick only fields needed to answer the user's query. Examples: - "What's the headcount?" → ["number_of_employees", "number_of_employees_listed_on_linkedin"] - "Are there upcoming meetings?" → ["number_of_upcoming_meetings"] - "Tell me about their account plan" → ["account_plan_layout_id", "account_plan_updated_at_date"] - "Which CRM?" → call `filter_fields_fetch` tool to get [..., {"id": "custom8", "label": "Current CRM"}, ...] → ["custom8"] Available named fields: - "account_plan_layout_id" — GUID of the account plan layout - "account_plan_updated_at_date" — when the account plan was last updated - "annual_revenue_range" — annual revenue range (e.g. "$10M-$50M") - "description" — short free-text description of the account - "linkedin_url" — LinkedIn company profile URL - "locality" — city or locality - "naics_codes" — NAICS industry classification codes - "number_of_employees" — headcount from Outreach record (0 means unknown; prefer number_of_employees_listed_on_linkedin for estimates) - "number_of_employees_listed_on_linkedin" — LinkedIn headcount - "number_of_upcoming_meetings" — count of upcoming scheduled meetings - "sic_codes" — SIC industry classification codes - "tags" — user-defined tags on the account - "website_url" — company website URL If the user query cannot be answered with a default or additional named field, use `filter_fields_fetch` tool with entity_type="account" to get the list of valid custom field IDs which can be used.

Default: null

Search for accounts using supported filters

account_search
Full Description

Search for accounts.

Default fields returned: id, name, company_type, owner, touched_at, industry, default_connection.

Filters (all optional): name (partial or full), owner_ids, team_id, ids, created date, account plan updated date, last contacted date.

  • Use last_contacted_before/last_contacted_after to find accounts with or without recent sales activity (sales rep engagement over emails, calls, meetings).
  • Use additional_field_filters to filter by field values with AND logic.

Additional output fields:

  • Use additional_fields to include extra fields in results.

For both additional_fields and additional_field_filters, call filter_fields_fetch tool with entity_type="account" first to discover valid field IDs and labels. Never guess field IDs.

Parameters (0 required, 15 optional)
Optional
account_plan_updated_at_afterstring

Optional. Only return account account_plan_updated_at after this time. If only account_plan_updated_at_after is provided without account_plan_updated_at_before, the search will return accounts account_plan_updated_at in 90 days after account_plan_updated_at_after.

Default: null
account_plan_updated_at_beforestring
Default: null
additional_field_filtersarray

Optional list of additional field filters applied with AND logic alongside the named parameters above. Each filter must include: - "attribute": field id from filter_fields_fetch (ex. "custom8") - "value": list of filter values (always strings). For operator "is": multiple values match with OR logic (ex. ["High", "Medium"]). For all other operators: provide a single value in the list (ex. ["1000000"] or ["salient seller"]). - "operator": what function to perform on "value" to produce search results (ex. "is") Allowed operators by field validation_type: - "string": is, contains, startswith - "inclusion": is - "numerical": gte, lte, is - "currency": gte, lte, is Operator definitions: - "gte": matches fields greater than or equal to Filter.value - "lte": matches fields less than or equal to Filter.value - "is": matches exact string equality between field and Filter.value - "contains": matches fields that contain Filter.value as a substring - "startswith": matches fields that start with Filter.value Rules: - For filter fields with validation_type of "inclusion", use values exactly as returned in validation_definition (case-sensitive).

Default: null
additional_fieldsarray

Additional fields to include in the output. Omit or pass null if default fields suffice. Only accepts custom field IDs discovered via `filter_fields_fetch` (e.g. "custom8"). Only pick fields needed to answer the user's query. Example: - "Which CRM do these accounts use?" → call `filter_fields_fetch` tool to get [..., {"id": "custom8", "label": "Current CRM"}, ...] → ["custom8"]

Default: null
created_afterstring

Optional. Only return account created after this time. If only created_after is provided without created_before, the search will return accounts created in 90 days after created_after.

Default: null
created_beforestring

Optional. Only return account created before this time. If only created_before is provided without created_after, the search will return accounts created in 90 days before created_before.

Default: null
idsarray

Filter by a list of account IDs. Returns only accounts whose ID is in this list.

Default: null
last_contacted_afterstring

Only return accounts last contacted over email, meetings or calls after this date. Use this to find accounts WITH recent activity, e.g. set to (now - 30 days) to find accounts contacted in the last 30 days.

Default: null
last_contacted_beforestring

Only return accounts last contacted over email, meetings or calls before this date. Use this to find accounts WITHOUT recent activity, e.g. set to (now - 30 days) to find accounts not contacted in the last 30 days.

Default: null
limitinteger

Maximum number of accounts to return.

Default: 10
namestring

full name or partial account name to search. Cannot be an empty string.

Default: null
offsetinteger

Pagination offset used for fetching accounts.

Default: 0
owner_idsarray

Filter by a list of user IDs who own or are assigned to the accounts. Returns accounts where the owner or assigned user matches any of the provided IDs.

Default: null
sortstring

The field to sort by. ONLY supported sort fields are: - "buyer_intent_score" - "created_at" - "last_contacted_at" - "updated_at" The field should be in the format "-field" for descending order or "field" for ascending order.

Default: null
team_idinteger

Filter by the ID of the team who owns the accounts

Default: null

Account Search By External Id

account_search_by_external_id
Full Description

Search for accounts using id of the associated object in external systems, such as Saleforce or Dynamics. The search will return a list of Accounts. The Account contains the same information returned by account_get_by_id tool.

Parameters (1 required)
Required
idstring

ID of the associated object in external systems to search. Cannot be an empty string.

Retrieve a list of calendar events (meetings)

calendar_events_fetch
Full Description

Retrieve a list of calendar events (meetings) based on optional filter criteria. A calendar event represents a scheduled meeting or appointment on a user's calendar. Use this tool to fetch scheduled meetings which have not yet occurred or to review past meetings regardless of whether they had transcripts or were processed by Kaia's meeting intelligence features. Use the kaia_meeting_fetch tool to retrieve contents about meetings which have already occurred (transcripts, etc). Use this tool to explore meetings from calendar metadata (e.g. scheduled date, source, cancellation status, etc).

Notes:

  • Multiple filters are combined with AND logic.
  • Use limit to control how many results are returned.

Response:

  • Each event includes the title, time range, associated prospect/account/opportunity, and attendees.
  • The 'count' field indicates the total number of matching events, which may exceed the limit.

When count > limit, state both the total and the number shown, e.g., "Showing 10 of 247 total events." When count <= limit, state only the count, e.g., "Found 3 calendar events."

Parameters (0 required, 4 optional)
Optional
filterarray

Optional list of filter criteria applied with AND logic. Each filter object has three fields: - "attribute": one of the supported filter attributes listed below. - "operator": comparison operator (must be valid for the attribute's data type — see below). - "value": list of string values. Rules: - For "is" operator: multiple values use OR logic (e.g. ["42", "43"]). - For "between" operator: exactly two values — [min, max] (e.g. ["2026-01-01T00:00:00Z", "2026-06-30T23:59:59Z"]). - For relative-date operators (today, thisWeek, nextWeek, todayAndLater): value MUST be a one-item list containing the user's current timezone offset in hours as a string (e.g. ["-7"] for UTC-7, ["5.5"] for UTC+5:30). This offset is required so the backend returns accurate results for the user's local date/time. CRITICAL RULES: - ONLY use the exact attribute names and operators listed in the tables below. - NEVER invent, guess, or fabricate any attribute or operator not listed here. - There is NO "userId" attribute. To filter by user, use attribute "users" with the user's ID. - If an attribute is not listed below, DO NOT use it. Supported filter attributes by type: DATE (value operators: is, between; relative-date operators require value = ["{timezoneOffsetInHours}"]: today, yesterday, tomorrow, todayAndLater, untilToday, thisWeek, last7Days): - startTime BOOLEAN (operators: is): - canceled REFERENCE (operators: is; values are IDs of the associated object, e.g. prospect ID, account ID, opportunity ID): - prospectId, accountId, opportunityId, attributedSequenceId, users (filter by user ID) ALWAYS: - exclude canceled calendar events unless user explicitly asks for canceled events: {attribute: "canceled", operator: "is", value: ["false"]} - include an opportunityId or accountId filter if a specific account or opportunity of interest is indicated in the conversation. Examples: [ {attribute: "users", operator: "is", value: ["42"]}, {attribute: "canceled", operator: "is", value: ["false"]} ] --> non-canceled events on calendars owned by user 42 [ {attribute: "startTime", operator: "todayAndLater", value: ["-7"]}, {attribute: "opportunityId", operator: "is", value: ["123"]} ] --> upcoming meetings from today onward for opportunity 123 (user is in UTC-7) [ {attribute: "startTime", operator: "between", value: ["2026-03-06T00:00:00Z", "2026-03-20T23:59:59Z"]} ] --> meetings scheduled between March 6 and March 20, 2026 [ {attribute: "prospectId", operator: "is", value: ["456"]}, {attribute: "canceled", operator: "is", value: ["false"]} ] --> non-canceled meetings associated with prospect 456 [ {attribute: "attributedSequenceId", operator: "is", value: ["789"]} ] --> meetings attributed to sequence 789

Default: null
limitinteger

Maximum number of calendar events to return per page. Valid range 1-30.

Default: 10
offsetinteger

Pagination offset used for fetching calendar events.

Default: 0
sortstring

The attribute to sort results by. ONLY Supported attributes: - 'startTime' Examples: 'startTime' --> sort by event start date in ascending order (earliest to latest) '-startTime' --> sort by event start date in descending order (latest to earliest)

Default: null

Current User

current_user
Full Description

Returns the user id and email of the caller

Search for emails for a specific account or opportunity

emails_search
Full Description

Fetches outbound emails for a specific account or opportunity. IMPORTANT: This tool ONLY returns emails sent BY reps, not emails received from prospects. If the user asks about received/inbound emails, use state='replied' to find emails that got replies, then use email_fetch_thread to retrieve the reply content. If a user query does not reference an account or opportunity: 1. DO NOT call this tool with null values for account_id or opportunity_id 2. Ask the user: "Which account or opportunity would you like to search for emails in?" 3. Wait for the user to provide the information before proceeding 4. A tool call will likely be made to map the account or opportunity name from a user to account_id or opportunity_id Only call this tool after the user has provided one of these identifiers. Additionally, use user_id to filter emails sent or received by a specific user. If a user asks about "my emails" or "emails I've sent/received", use the current user id as user_id.

Parameters (0 required, 14 optional)
Optional
account_idinteger

Filter search results to emails associated with this account_id. REQUIRED: Either account_id OR opportunity_id must be provided (not both). If filtering by opportunity instead, leave this null.

Default: null
delivered_at_afterstring

Optional. Only return mailings delivered after this time. Use with state='delivered'.

Default: null
delivered_at_beforestring

Optional. Only return mailings delivered before this time. Use with state='delivered'.

Default: null
include_body_textboolean

If true, includes the abbreviated email body in the response.

Default: False
include_subjectboolean

If true, includes the email subject line in the response.

Default: False
limitinteger

Maximum number of mailings to return.

Default: 5
offsetinteger

Pagination offset used for fetching mailings.

Default: 0
opened_at_afterstring

Optional. Only return mailings opened after this time. Use with state='opened'.

Default: null
opened_at_beforestring

Optional. Only return mailings opened before this time. Use with state='opened'.

Default: null
opportunity_idinteger

Filter search results to emails associated with this opportunity_id. REQUIRED: Either account_id OR opportunity_id must be provided (not both). If filtering by account instead, leave this null.

Default: null
replied_at_afterstring

Optional. Only return mailings replied after this time. Use with state='replied'.

Default: null
replied_at_beforestring

Optional. Only return mailings replied before this time. Use with state='replied'.

Default: null
statestring

Filter by email state. If not supplied, defaults to 'delivered'. States are progressive: opened and replied are subsets of delivered. Use 'delivered' for all sent emails (pair with delivered_at_after/before). Use 'opened' for delivered emails that were opened (pair with opened_at_after/before). Use 'replied' for delivered emails that got a reply (pair with replied_at_after/before). Only use the time filter that matches the state — e.g. opened_at has no effect with state='delivered'.

Default: delivered
user_idinteger

Filter emails to those sent or received by this user. Use this when a user asks about their own emails or emails for a specific user.

Default: null

Fetch filter fields for a resource type

filter_fields_fetch
Full Description

Fetch fields for a specific entity type (ex. account) which can be used as:

  • filter attributes on that entity's search tool (ex. account_search, opportunity_search, prospect_search) through the additional_field_filters parameter.
  • additional output fields on that entity's search or get tools through the additional_fields parameter.

Use this tool to retrieve up to 250 additional fields which can be used to retrieve the necessary data to answer user queries that can't be answered with built-in filters and args on existing entity search or get tools.

ONLY Supported entity types:

  • prospect
  • account
  • opportunity

Response format:

  • 'id' is the internal id used only for API calls.
  • 'label' is the human friendly name displayed in the UI that users will be familiar with.
  • 'validation_type' describes the data type (ex. numerical, inclusion, string, date).
  • 'validation_definition' describes accepted values for 'inclusion' and 'currency' validation_types.

For 'inclusion' and 'currency' fields, the filter value must exactly match one of the entries in validation_definition.

Example Response: { "entity_type": "account", "count": 2, "custom_fields": [ { "id": "amount", "label": "amount", "description": "The $ value of the opportunity in annual revenue.", "validation_type": "numerical", "validation_definition": null }, { "id": "custom3", "label": "Account Priority", "validation_type": "inclusion", "validation_definition": [ "Low", "Medium", "High" ] } ] }

Parameters (1 required)
Required
entity_typestring

Entity type to fetch fields for

Options:prospectaccountopportunity

Fetch the available input fields for a resource create/update action.

input_fields_fetch
Full Description

Fetch the available input fields for a resource create/update action.

Returns a ResourceInputSchema with three sections:

  • standard_fields: typed optional fields (e.g. companyType, industry, assignedTeams).
  • ref_types: definitions of non-scalar types referenced by standard_fields

(e.g. TeamRelationship, UserRelationship — each with its 'id' field).

  • custom_fields: organization-specific custom fields with validation metadata.

Supported resources: Account Supported actions: Create

Response structure: resource (str): The resource type (e.g. 'Account'). action (str): The action type (e.g. 'Create'). standard_fields (list): Standard optional fields, each containing:

  • name: camelCase GQL field name (e.g. 'companyType', 'assignedTeams')
  • type: concise type string (e.g. 'string', 'int', 'float',

'TeamRelationship', 'list[UserRelationship]', 'list[string]')

  • required: whether the field is required for the action
  • description: description of the field

ref_types (list): Non-scalar type definitions referenced by standard_fields. Each contains:

  • name: type name (e.g. 'TeamRelationship', 'UserRelationship')
  • description: description of the type
  • fields: list of fields in this type, each with name, type, required

custom_fields (list): Custom fields with validation rules, each containing:

  • name: internal field identifier (e.g. 'custom1')
  • label: human-readable label (e.g. 'Region')
  • required: whether the field is required
  • description: description of the custom field
  • validation_type: validation kind ('numerical', 'inclusion', 'string',

'currency', 'date')

  • validation_definition: accepted values for 'inclusion' type, currency

code for 'currency' type, etc.

Example response: { "resource": "Account", "action": "Create", "standard_fields": [ {"name": "companyType", "type": "string", "required": false, "description": "Company type of the account"}, {"name": "assignedTeams", "type": "list[TeamRelationship]", "required": false, "description": "Teams assigned to the account"} ], "ref_types": [ {"name": "TeamRelationship", "description": "A relationship reference to a Team entity.", "fields": [{"name": "id", "type": "int", "required": true, "description": "ID of the related entity"}]}, {"name": "UserRelationship", "description": "A relationship reference to a User entity.", "fields": [{"name": "id", "type": "int", "required": true, "description": "ID of the related entity"}]} ], "custom_fields": [ {"name": "custom1", "label": "Region", "required": true, "description": "Region", "validation_type": "inclusion", "validation_definition": ["NA", "EMEA", "APAC"]} ] }

Parameters (2 required)
Required
actionstring

Action type (e.g. 'Create', 'Update').

resourcestring

Resource type to fetch input fields for (e.g. 'Account', 'Prospect', 'Opportunity').

Search Kaia meetings using supported filters

kaia_meeting_search
Full Description

Search across recorded calls and meetings captured by Kaia. Returns matching recordings with transcripts, topics, summaries, and associated account/opportunity info.

Use this tool to find recordings by keyword, topic, account, opportunity, participant, host, date range, or title. Kaia captures two kinds of recordings:

  • Voice calls (phone calls): sourceType = "voice"
  • Meetings (video/screen-share conferences, e.g. Zoom, Teams): sourceType ≠ "voice"

When the user says "calls", filter to voice calls. When they say "meetings", filter to non-voice. When the intent covers both (e.g. "conversations", "recordings"), do not filter by sourceType.

FILTER FORMAT: Pass a JSON list of filter objects. Each filter has the shape: {attribute, value, operator}.

  • attribute: the field to filter on (see supported attributes below)
  • value: list of string values to match
  • operator: (optional) defaults to "is". Supported: "is", "isNot"

(plus date-specific operators for 'meeting.startTime', see below)

All filters are combined with AND logic.

SUPPORTED FILTER ATTRIBUTES:

  • 'search' — full-text keyword search across transcripts, notes, action items, meeting title,

participant/account/opportunity names. Syntax: Single word: value: ["budget"] Implicit AND: value: ["budget planning"] Explicit OR: value: ["\"budget\" OR \"planning\""] Exact phrase: value: ["\"budget planning\""]

  • 'transcript.text' — search only within transcript text (more precise than 'search').

Example: [{attribute: "transcript.text", value: ["budget"], operator: "is"}]

  • 'topic.type' — detected topic name.

General topics: 'budgetpricing', 'competitor', 'demotrial', 'discovery', 'eventmarketing', 'legal', 'logistics', 'nextstep', 'organization', 'product', 'purchase', 'salespitch', 'stakeholder', 'support'. MEDDPICC topics (prefix 'salesMethodology:'): 'salesMethodology:champion', 'salesMethodology:competitor', 'salesMethodology:metrics', 'salesMethodology:economicbuyer', 'salesMethodology:decisionprocess', 'salesMethodology:decisioncriteria', 'salesMethodology:paperprocess', 'salesMethodology:implicatepain'. Auto-enrichment: non-built-in names (e.g. "Salesforce") are automatically mapped to custom topic IDs if a match is found. Built-in types 'competitor' and 'product' automatically include all active custom topics of that type. Example: value: ["competitor", "Salesforce"] finds meetings tagged with any built-in competitor topic, all custom competitor topics, and the custom topic named 'Salesforce'. IMPORTANT: always pair a topic.type filter with include: [{attribute: "topic", includeType: "matching"}] to receive the matching topic segments in the results. Do NOT include transcript.

  • 'meeting.accountid' — account id
  • 'meeting.opportunityid' — opportunity id
  • 'meeting.participant.userid' — participant user id (not just host)
  • 'meeting.host.userid' — host user id
  • 'meeting.sourcetype' — value: ["voice"], operator: "is" for calls;

value: ["voice"], operator: "isNot" for meetings.

  • 'meeting.startTime' — date/range filter. Use ONLY these operators (no others are valid):

"is" — exact date match: value: ["2026-03-10"], operator: "is" "between" — date range: value: ["2026-03-01", "2026-03-05"], operator: "between" Relative operators (value must be ["0"], operator is one of the following exact strings): "last7Days" — past 7 days (use for "this week" or "last 7 days") "last30Days" — past 30 days "last90Days" — past 90 days "lastMonth" — the previous calendar month "thisMonth" — the current calendar month "today" — today only "untilToday" — from the beginning of time until today "ytd" — year to date

  • 'meeting.title' — filter by keyword in meeting title
  • 'meeting.duration' - filter by meeting duration in minutes. Supported operators include:

"gte" - greater than or equal to "lte" - less than or equal to "between" - duration between value[0] and value[1]

All attributes accept multiple comma-separated values.

FILTER EXAMPLES: filter: [{attribute: "search", value: ["Amplify OR budget"]}] filter: [{attribute: "topic.type", value: ["competitor", "Salesforce"], operator: "is"}, {attribute: "meeting.accountid", value: ["123"]}] filter: [{attribute: "topic.type", value: ["salespitch"], operator: "isNot"}] filter: [{attribute: "meeting.sourcetype", value: ["voice"], operator: "is"}] filter: [{attribute: "meeting.sourcetype", value: ["voice"], operator: "isNot"}]

INCLUDE FORMAT: Controls which artifact types are returned alongside each matching meeting. Only include artifact types relevant to the query to avoid unnecessary data.

attribute values:

  • 'transcript' — transcript segments
  • 'topic' — detected topics

includeType values:

  • 'matching' — return only artifacts that match the current filter/search

INCLUDE EXAMPLES: Required for keyword search only: [{attribute: "transcript", includeType: "matching"}] Required for topic search only: [{attribute: "topic", includeType: "matching"}] Only when searching both simultaneously: [{attribute: "transcript", includeType: "matching"}, {attribute: "topic", includeType: "matching"}] Do NOT include transcript when topic.type is used as a filter — it returns unrelated segments and inflates the response.

PAGINATION: Use 'first' (default 10, max 30) to control page size. Use 'after' with the end_cursor from a previous response to fetch the next page.

Parameters (0 required, 6 optional)
Optional
afterstring

Pagination cursor. Pass the end_cursor from a previous response to fetch the next page.

Default: null
filterarray

JSON list of filter objects. Each object has 'attribute' (str), 'value' (list of str), and optional 'operator' (str, defaults to "is"). See tool description for supported attributes and examples.

Default: null
firstinteger

Maximum number of meetings to return per page. Valid range 1-30.

Default: 10
includearray

Controls which artifact types are returned per meeting. List of objects with 'attribute' ("transcript" or "topic") and 'includeType' ("matching" or "full"). Example: [{"attribute": "transcript", "includeType": "matching"}]

Default: null
include_recording_summaryboolean

Whether to include the recording summary for each meeting. Defaults to false.

Default: False
limit_artifactsinteger

Maximum number of matching artifacts returned per meeting per include type. Defaults to 20. Increase if more matching transcript segments or topics are needed per meeting.

Default: null

Opportunity Answer Question

opportunity_answer_question
Full Description

Answers questions about an opportunity by searching and analyzing opportunity record, meeting transcription, and other related data in the time range if specified. Example questions include:

  • What business goals is the buyer aiming to achieve?
  • What specific challenges is the buyer trying to solve?
Parameters (2 required, 2 optional)
Required
idinteger

ID of an opportunity. Must be a positive integer.

questionstring

A specific question about the opportunity to ask. Cannot be an empty string.

Optional
date_range_endstring

An optional end date to filter the opportunity data.

Default: null
date_range_startstring

An optional start date to filter the opportunity data.

Default: null

Creates a new opportunity record in Outreach.

opportunity_create
Full Description

Creates a new opportunity record in Outreach. The current user is automatically assigned as the owner if no owner is specified in the input. Returns an opportunity record with only the id field populated; all other fields are not set.

IMPORTANT: Every field value used to create the opportunity MUST be explicitly provided by the user. Never infer, guess, or fabricate field values. If the user has not supplied a value for a field, do not include that field.

ALWAYS call input_fields_fetch with resource="Opportunity" and action="Create" before calling this tool. input_fields_fetch returns the full list of available standard fields, their types, and any required custom fields with validation rules. This ensures you know exactly which fields are available and which are required before creating the opportunity.

Example: input: name: "Q1 Enterprise Deal" closeDate: "2026-05-17T16:48:12.000Z" additional_fields:

  • field_name: "amount"

value: 50000

  • field_name: "opportunityStage"

value: {"id": 3}

  • field_name: "custom1"

value: "Inbound"

Parameters (1 required)
Required
input

Input model containing opportunity creation details. All values MUST come directly from the user. Never guess or fabricate any field value. ALWAYS call input_fields_fetch first to discover available additional fields and their types.

Get opportunity using its unique identifier

opportunity_get_by_id
Full Description

Retrieve a opportunity and associated sales methodology using its unique identifier and return the corresponding Opportunity object including: id: int name: str | None account: Account | None (only id and name are returned) amount: int | None close_date: str | None created_at: str | None health_score: float | None next_step: str | None last_contacted_at: str | None updated_at: str | None assigned_users: list[User] (only id and name are returned for each user) opportunity_stage: OpportunityStage | None owner: User | None (only id and name are returned) primary_prospect: Prospect | None (only id and name are returned) default_connection: DataConnection | None sales_methodology: SalesMethodology | None (only present when include_sales_methodology=True) fields: list[SalesMethodologyField]

SalesMethodologyField contains the definition of a sales methodology field and the opportunity's value for that field, and includes: order: int | None label: str | None name: str | None label_short: str | None type: str | None definition: str | None value: str | None (the opportunity's value for this field) use type and definition if set to determine how to interpret the value field. For example, when type is "RELATIONSHIP", definition is "PROSPECT", and value is "1280273", it means the value is id of the prospect resource. To get more details about the resource, use the corresponding get_by_id tool with the id, or other appropriate tools. In this example, use prospect_get_by_id with id 1280273 to get more details about the prospect.

Note: sales_methodology is only available from this tool, not from opportunity_search or other opportunity tools. This tool returns only summary information (id, name) for nested objects such as owner, assigned_users, and primary_prospect. The account field contains the parent account's id and name — use account.id (not the opportunity id) for account-scoped lookups. To get full details about the owner or an assigned user, use the user_get_by_id tool with the user's id. To get full details about the primary prospect, use the prospect_get_by_id tool with the prospect's id.

Parameters (1 required, 1 optional)
Required
idinteger

ID of an opportunity (not an account ID or prospect ID). Must be a positive integer. Get this from opportunity_search results or conversation context.

Optional
include_sales_methodologyboolean

When true, fetches sales methodology field definitions and populates the sales_methodology field on the returned Opportunity with each active field's value for this opportunity.

Default: null

Search for opportunities using supported filters

opportunity_search
Full Description

Search for opportunities.

Default fields returned: id, account, amount, close_date, created_at, health_score, name, next_step, last_contacted_at, updated_at, assigned_users, opportunity_stage, owner, primary_prospect, default_connection.

Filters (all optional): ids, name, account_id, owner_ids, is_open, created date range, close date range, health score range.

  • Use additional_field_filters to filter by field values with AND logic.

Additional output fields:

  • Use additional_fields to include extra fields in results.

For both additional_fields and additional_field_filters, call filter_fields_fetch tool with entity_type="opportunity" first to discover valid field IDs and labels. Never guess field IDs.

The Opportunity contains the same information returned by opportunity_get_by_id tool, except sales_methodology which is only available via opportunity_get_by_id. Each opportunity result includes the parent account (account.id, account.name). The response includes:

  • count: the TOTAL number of matching opportunities (server-side, not limited by the limit parameter).
  • opportunities: the list of opportunity records (up to limit items).

When the user asks about health score without specifying exact numbers, use health_score_low and health_score_high to filter:

  • any mention of health score without a specific range → health_score_low=0, health_score_high=100 to only return opportunities that have a valid health score

When filtering by health score range, sort by health_score ascending to show the most critical opportunities first (sort=["health_score"]). A null/missing health_score means the score is unknown/unavailable — NOT that the score is 0 or low. When presenting results filtered by health score, note any records with missing health score values.

Parameters (0 required, 16 optional)
Optional
account_idinteger

Filter by account ID to find all opportunities in a specific account

Default: null
additional_field_filtersarray

Optional list of additional field filters applied with AND logic alongside the named parameters above. Each filter must include: - "attribute": field id from filter_fields_fetch (ex. "custom8" or "mapStatus") - "value": list of filter values (always strings). For operator "is": multiple values match with OR logic (ex. ["High", "Medium"]). For all other operators: provide a single value in the list (ex. ["1000000"] or ["salient seller"]). - "operator": what function to perform on "value" to produce search results (ex. "is") Allowed operators by field validation_type: - "string": is, contains, startswith - "inclusion": is - "numerical": gte, lte, is - "currency": gte, lte, is Operator definitions: - "gte": matches fields greater than or equal to Filter.value - "lte": matches fields less than or equal to Filter.value - "is": matches exact string equality between field and Filter.value - "contains": matches fields that contain Filter.value as a substring - "startswith": matches fields that start with Filter.value Rules: - For filter fields with validation_type of "inclusion", use values exactly as returned in validation_definition (case-sensitive).

Default: null
additional_fieldsarray

Additional fields to include in the output. Only accepts field IDs discovered via `filter_fields_fetch` (e.g. "custom8" or "mapStatus"). Only pick fields needed to answer the user's query. Example: - "What is the forecast category for these opportunities?" → call `filter_fields_fetch` tool to get [..., {"id": "custom5", "label": "Forecast Category"}, ...] → ["custom5"]

Default: null
close_date_afterstring

Optional. Only return opportunity close_date after this time. If only close_date_after is provided without close_date_before, the search will return opportunities close_date in 90 days after close_date_after.

Default: null
close_date_beforestring

Optional. Only return opportunity close_date before this time. If only close_date_before is provided without close_date_after, the search will return opportunities close_date in 90 days before close_date_before.

Default: null
created_afterstring

Optional. Only return opportunity created after this time. If only created_after is provided without created_before, the search will return opportunities created in 90 days after created_after.

Default: null
created_beforestring

Optional. Only return opportunity created before this time. If only created_before is provided without created_after, the search will return opportunities created in 90 days before created_before.

Default: null
health_score_highinteger

Optional. Upper bound of health score range filter (0-100 inclusive). If only health_score_high is provided without health_score_low, health_score_low defaults to 0.

Default: null
health_score_lowinteger

Optional. Lower bound of health score range filter (0-100 inclusive). If only health_score_low is provided without health_score_high, health_score_high defaults to 100.

Default: null
idsarray

Filter by a list of opportunity IDs. Returns only opportunities whose ID is in this list.

Default: null
is_openboolean

if true, only return open opportunities. if false, only return closed opportunities. if null, return both open and closed opportunities.

Default: null
limitinteger

Maximum number of opportunities to return.

Default: 10
namestring

full name or partial opportunity name to search. Cannot be an empty string.

Default: null
offsetinteger

Pagination offset used for fetching opportunities.

Default: 0
owner_idsarray

Filter by a list of user IDs. Returns only opportunities owned by users whose IDs are in this list.

Default: null
sortarray

List of fields to sort by. The supported fields are: "created_at", "last_contacted_at", "amount", "health_score", "close_date". Each field should be in the format "-field" for descending order or "field" for ascending order. Only one sort field is allowed for each call.

Default: null

Opportunity Search By External Id

opportunity_search_by_external_id
Full Description

Search for opportunities using id of the associated object in external systems, such as Saleforce or Dynamics. The search will return a list of Opportunities. The Opportunity contains the same information returned by opportunity_get_by_id tool, except sales_methodology which is only available via opportunity_get_by_id.

Parameters (1 required)
Required
idstring

ID of the associated object in external systems to search. Cannot be an empty string.

Returns a list of opportunity stages with optional filtering.

opportunity_stage_fetch
Full Description

Returns a list of opportunity stages with optional filtering. Opportunity stages represent the different phases in a sales process (e.g., 'Discovery', 'Negotiation', 'Closed Won').

Supported filter attributes:

  • id
  • name
  • isClosed

Examples:

  • filter:[] → returns all opportunity stages
  • filter:[{"attribute": "isClosed", "operator": "is", "value": "true"}] → only stages that are subtypes of 'closed'
  • filter:[{"attribute": "id", "operator": "is", "value": ["1", "2"]}] → only stages with id 1 or 2
  • filter:[{"attribute": "name", "operator": "is", "value": ["Discovery"]}] → only stages with name that exactly matches 'Discovery'

Notes:

  • Partial string matching is not supported for 'name'.
  • Multiple filters are combined with AND logic (all must match).

Response:

  • Each stage includes id, name, isActive, isWon, and isClosed fields.
  • The response 'count' field indicates the total number of matching stages,

which may exceed the number of records returned when a limit is applied.

Parameters (0 required, 3 optional)
Optional
filterarray

Filter criteria to narrow down results by specific field values. - Supported attributes: 'id', 'name', 'isClosed' - Only exact matches are supported for 'name' - Multiple filters are combined with AND logic Example: filter: [ {attribute: "isClosed", "operator": "is", value: "true"}, {attribute: "id", "operator": "is", value: ["27"]} ]

Default: null
limitinteger

Maximum number of opportunity stages to return. Valid range 1-30.

Default: 10
offsetinteger

Pagination offset used for fetching opportunity stages.

Default: 0

Creates a new prospect in Outreach.

prospect_create
Full Description

Creates a new prospect in Outreach. The current user is automatically assigned as one of the prospect's assigned users. The current user is set as the owner if no owner is specified in the input. Returns the created prospect record including its id only.

IMPORTANT: Every field value used to create the prospect MUST be explicitly provided by the user. NEVER infer, guess, or fabricate field values. Do NOT make up field names. If the user has not supplied a value for a field, do not include that field.

At least one of first_name or last_name must be provided.

ALWAYS call input_fields_fetch with resource="Prospect" and action="Create" before calling this tool. input_fields_fetch returns the full list of custom fields with validation rules. This ensures you know exactly which fields are available and which are required before creating the prospect.

HOW TO BUILD THE INPUT — follow these steps in order: Step 1: Set first_name and/or last_name from the user's request. Step 2: Set owner and assigned_users if specified by the user. Step 3: Collect ALL remaining data the user provided (standard fields like title, company, emails, AND custom fields like custom1, custom2) and place them into additional_fields. Custom fields (custom1 through custom150) are always strings. Step 4: Check input_fields_fetch results for any field with required: true. If ANY required field is missing from custom_fields, STOP and ask the user for the value. Step 5: Verify additional_fields is NOT null and NOT empty [] if you collected any values in Steps 3-4.

custom_fields handling: Any field whose name starts with "custom" (e.g. custom1, custom2, …, custom150) MUST be placed inside additional_fields — they are NOT top-level parameters. Each entry has a field_name (e.g. "custom1") and a value (always a string for custom fields).

Example — user says "Create prospect Jane Smith, VP of Sales at Acme Corp, set custom1 to NA": input: first_name: "Jane" last_name: "Smith" additional_fields:

  • field_name: "title"

value: "VP of Sales"

  • field_name: "company"

value: "Acme Corp"

  • field_name: "custom1"

value: "NA"

Parameters (1 required)
Required
input

Input model containing prospect creation details. Standard optional fields (title, company, emails, etc.) are declared directly on this model. CRITICAL: Populate `additional_fields` FIRST with all user-provided custom field values and all required fields from `input_fields_fetch` BEFORE setting any other fields to null. Custom fields (custom1, custom2, etc.) MUST go inside `additional_fields` as key-value string pairs — NEVER as top-level fields. Example: additional_fields: [{field_name: "custom1", value: "Google"}].

Get prospect using its unique identifier

prospect_get_by_id
Full Description

Retrieve a prospect using its unique identifier and return the corresponding Prospect object including: id: int name: str | None owner: User | None (only id and name are returned) account: Account | None (only id, name, company_type, touched_at, and industry are returned) assigned_users: list[User] (only id and name are returned for each user) campaign_name: str | None engaged_score: float | None engaged_at: str | None touched_at: str | None stage: Stage | None default_connection: DataConnection | None

Note: This tool returns only summary information for nested objects. To get full details about the owner or an assigned user, use the user_get_by_id tool with the user's id. To get full details about the account, use the account_get_by_id tool with the account's id. To get multiple prospects by their IDs, use the prospect_search tool with the ids parameter.

Parameters (1 required)
Required
idinteger

ID of a prospect (not an account ID, opportunity ID, or user ID). Must be a positive integer. Common sources: any tool result that returns a prospect object (prospect.id field), conversation context, or injected context from the UI.

Search for prospects using supported filters

prospect_search
Full Description

Search for prospects using:

  • the supported filters: name (partial or full name), ids (list of prospect IDs), account_ids, opportunity_ids, and owner_ids.
  • additional_field_filters to filter by field values with AND logic.

At least one filter (name, ids, account_ids, opportunity_ids, owner_ids, additional_field_filters) SHOULD be provided; calling with no filters returns all prospects in the system.

Returns a list of Prospects. Each prospect contains the same information returned by prospect_get_by_id tool. Default fields returned: id, name, owner, account, assigned_users, campaign_name, engaged_score, engaged_at, stage, default_connection.

Additional output fields:

  • Use additional_fields to include extra fields in results.

For both additional_fields and additional_field_filters, call filter_fields_fetch tool with entity_type="prospect" first to discover valid field IDs and labels. Never guess field IDs. Both custom_fields and standard_fields can be used for filtering and additional output.

The response includes:

  • count: the TOTAL number of matching prospects (server-side, not limited by the limit parameter).
  • prospects: the list of prospect records (up to limit items).

When count > limit, state both the total and the number shown, e.g., "Showing 10 of 50 total prospects." When count <= limit, state only the count, e.g., "Found 3 prospects."

Parameters (0 required, 9 optional)
Optional
account_idsarray

Filter by a list of account IDs. Returns only prospects whose account ID is in this list.

Default: null
additional_field_filtersarray

Optional list of additional field filters applied with AND logic alongside the named parameters above. Each filter object has three fields: - "attribute": field id from filter_fields_fetch (e.g. "custom8", "engagedAt"). - "operator": comparison operator (must be valid for the attribute's data type — see below). - "value": list of string values. Rules: - For "is" operator: multiple values use OR logic (e.g. ["High", "Medium"]). - For "between" operator: exactly two values — [min, max] (e.g. ["1", "100"] or ["2025-01-01", "2025-06-30"]). - For all other value-taking operators: a single value in the list (e.g. ["1000000"]). - For no-value operators (isEmpty, isNotEmpty, and all relative-date operators like today, last7Days, etc.): provide an empty list []. ═══════════════════════════════════════════════════════════════════════ CUSTOM FIELDS (from filter_fields_fetch) ═══════════════════════════════════════════════════════════════════════ For custom fields (e.g. "custom1", "custom8") and standard fields returned by filter_fields_fetch, use the "validation_type" from the response to determine which operators are allowed: validation_type "string": Operators: is, isNot, startsWith, contains, notContains, isEmpty, isNotEmpty Example: {"attribute": "custom5", "operator": "contains", "value": ["enterprise"]} validation_type "numerical" or "currency": Operators: is, isNot, between, gte, lte, isEmpty, isNotEmpty Example: {"attribute": "custom1", "operator": "gte", "value": ["1000000"]} validation_type "date": Value operators: is, between, gte, lte, isEmpty, isNotEmpty Relative-date operators (value = []): today, yesterday, tomorrow, beforeToday, todayAndLater, untilToday, until90Days, last7Days, last30Days, last90Days, next7Days, next30Days, next90Days, lastWeek, thisWeek, nextWeek, lastMonth, thisMonth, ytd Example: {"attribute": "custom12", "operator": "last30Days", "value": []} validation_type "boolean": Operators: is, isNot, isEmpty, isNotEmpty Example: {"attribute": "custom3", "operator": "is", "value": ["true"]} validation_type "inclusion" or "multi_inclusion": Operators: is, isNot, isEmpty, isNotEmpty Values MUST exactly match entries from validation_definition (case-sensitive). Example: {"attribute": "custom8", "operator": "is", "value": ["High", "Medium"]} ═══════════════════════════════════════════════════════════════════════ STANDARD FIELDS (not from filter_fields_fetch) ═══════════════════════════════════════════════════════════════════════ The following standard fields are NOT returned by filter_fields_fetch but can be used directly as filter attributes. Use the operators listed for each data type. ┌─────────────────────────────────────────────────────────────────────┐ │ STRING type │ │ Operators: is, isNot, startsWith, contains, notContains, │ │ isEmpty, isNotEmpty │ ├─────────────────────────────────────────────────────────────────────┤ │ email, addressState, addressStreet, addressStreet2, addressCity, │ │ addressZip, addressCountry, campaignName, companyIndustry, │ │ companyLinkedIn, companyLocality, companyNatural, companyType, │ │ currentSequenceStatus, currentSequenceStep, │ │ currentSequenceStepType, currentSequenceUserName, eventName, │ │ externalId, externalOwner, externalSource, finishedSequence, │ │ firstName, fullName, homePhone, integrationRecordType, lastName, │ │ linkedIn, linkedInId, middleName, mobilePhone, otherPhone, │ │ personalNote1, personalNote2, preferredContact, │ │ opportunityProspectRole, timeZone, twitterUsername, voipPhone, │ │ workPhone, lastEnrichmentStatus, phoneStatuses, emailStatuses, │ │ skills, interests │ └─────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────────┐ │ NUMBER type │ │ Operators: is, isNot, between, gte, lte, isEmpty, isNotEmpty │ ├─────────────────────────────────────────────────────────────────────┤ │ numActiveSequences, activeTaskCount, companyFollowers, │ │ companyLinkedInEmployees, companySize, engagedScore, │ │ linkedInConnections, numBookedMeetings │ └─────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────────┐ │ DATE type │ │ Value operators: is, between, gte, lte, isEmpty, isNotEmpty │ │ Relative-date operators (value = []): │ │ today, yesterday, tomorrow, beforeToday, todayAndLater, │ │ untilToday, until90Days, last7Days, last30Days, last90Days, │ │ next7Days, next30Days, next90Days, lastWeek, thisWeek, nextWeek, │ │ lastMonth, thisMonth, ytd │ ├─────────────────────────────────────────────────────────────────────┤ │ createdAt, currentSequenceStepDue, engagedAt, touchedAt, updatedAt, │ │ availableAt, optedOutAt, enrichedAt, lastEnrichmentUpdatedAt, │ │ enrichableSetAt, signalsEventAt, workHistoryStartDate │ └─────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────────┐ │ ID-LIKE type │ │ Operators: is, isNot, isEmpty, isNotEmpty │ ├─────────────────────────────────────────────────────────────────────┤ │ activeSequence │ └─────────────────────────────────────────────────────────────────────┘ Rules: - Always call `filter_fields_fetch` with entity_type="prospect" first to discover custom field IDs. Never guess field IDs. - For custom fields: match the validation_type from filter_fields_fetch to the operator table above. - For standard fields: use the hardcoded attribute lists above directly. - For fields with validation_type "inclusion" or "multi_inclusion": values must exactly match entries from validation_definition (case-sensitive).

Default: null
additional_fieldsarray

Additional fields to include in the output. Only accepts field IDs discovered via `filter_fields_fetch` (e.g. "custom8"). Only pick fields needed to answer the user's query.

Default: null
idsarray

Filter by a list of prospect IDs. Returns only prospects whose ID is in this list.

Default: null
limitinteger

Maximum number of prospects to return.

Default: 10
namestring

Full or partial prospect name to search. Cannot be an empty string. Do not pass null to retrieve all prospects.

Default: null
offsetinteger

Pagination offset used for fetching prospects.

Default: 0
opportunity_idsarray

Filter by a list of opportunity IDs. Returns only prospects associated with the given opportunity IDs.

Default: null
owner_idsarray

Filter by a list of owner IDs. Returns only prospects whose owner ID is in this list.

Default: null

Prospect Search By External Id

prospect_search_by_external_id
Full Description

Search for prospects using id of the associated object in external systems, such as Saleforce or Dynamics. The search will return a list of Prospects. The Prospect contains the same information returned by prospect_get_by_id tool.

Parameters (1 required)
Required
idstring

ID of the associated object in external systems to search. Cannot be an empty string.

Adds prospects to a sequence in Outreach

sequence_add_prospects
Full Description

Adds prospects to a sequence in Outreach by creating a batch operation. Returns a BatchRecord containing the batch ID and status. After receiving the batch response, use the batch_get_by_id tool with the returned batch ID to check its progress and report the final state (total, failures, pending) to the user.

Required inputs:

  • prospect_ids: list of prospect IDs to add to the sequence.
  • sequence_id: ID of the target sequence.

Optional inputs allow controlling mailbox, starting template, opportunity association, batch confirmation, and scheduling.

IMPORTANT: Prospect IDs and sequence ID must be explicitly provided by the user. NEVER guess or fabricate IDs.

Parameters (1 required)
Required
input

Input model containing the prospect IDs, sequence ID, and optional configuration for the add-to-sequence operation.

Search for sequences

sequence_search
Full Description

Search for sequences using additional_filters for field-level filtering with AND logic.

Returns a list of Sequences. Each sequence contains:

  • id, name, owner, engagement_score, sequence_steps

The response includes:

  • count: the TOTAL number of matching sequences (server-side, not limited by the limit parameter).
  • sequences: the list of sequence records (up to limit items).
  • page_info: cursor pagination info (end_cursor, has_next_page, etc.)

When count > limit, state both the total and the number shown, e.g., "Showing 10 of 50 total sequences." When count <= limit, state only the count, e.g., "Found 3 sequences."

Parameters (0 required, 4 optional)
Optional
additional_filtersarray

Optional list of field filters applied with AND logic. Each filter object has three fields: - "attribute": field identifier (see supported fields below). - "operator": comparison operator (must be valid for the attribute's data type — see below). - "value": list of string values. - For "is" operator: multiple values use OR logic (e.g. ["active", "paused"]). IMPORTANT: Use `favoritedBy` filter with the user's ID to find `my favorite sequences`, `Joe's favorite sequences`, etc. Supported filter attributes by type: DATE (operators: is, between, today, yesterday, tomorrow, todayAndLater, untilToday, thisWeek, last7Days; for relative operators, value is ["{timezoneOffsetInHours}"]): - createdAt, lastUsedAt, updatedAt STRING ENUM (operators: is): - salesMotion: SequenceSalesMotion enum values - type: "interval", "date" - shareType: "shared", "read_only", "private" - state: "active", "inactive", "locked", "paused" ENGAGEMENT SCORE (operator: between; value is a range, e.g. ["0", "25"]): - engagementScore STRING FREE TEXT (operators: is, contains; feature-flag gated): - name BOOLEAN (operators: is; value is ["true"] or ["false"]): - ownedByLockedUsers, aiTemplatePowered, transactional NUMBER (operators: is, between): - interestedCount, prospectContactedCount, prospectDeliverCount REFERENCE (operators: is; values are IDs of the associated object): - contentCategory (ContentCategory), owner (User), favoritedBy (User), tags (Tag), ruleset (Ruleset), scheduleId (SequenceSchedule), team (Team)

Default: null
afterstring

Cursor for fetching the next page of results. Use the value of page_info.end_cursor from a previous response.

Default: null
limitinteger

Maximum number of sequences to return per page.

Default: 10
sortarray

Optional list of sort attributes. Prefix with "-" for descending order. Supported sort keys: recent, createdAt, updatedAt, name, owner, scheduleName, rulesetName, deliveries, replies, opens, clicks, interestedCount, engagementScore.

Default: null

Search for sequence states using supported filters.

sequence_state_search
Full Description

Search for sequence states — records that track an individual prospect's involvement and progress through the steps of a specific outreach sequence. Each sequence state ties one prospect to one sequence and captures their current execution state within that sequence (e.g., 'active', 'bounced', 'paused', 'finished').

A sequence state is NOT the same as a prospect stage. Prospect stages (e.g., 'Attempting to Contact', 'Closed

  • Unresponsive') describe the prospect's overall disposition in

the pipeline. Sequence states describe whether a prospect is currently progressing through a specific sequence's steps.

Use this tool when:

  • The user asks about prospects involved in a specific sequence
  • The user asks who has been contacted, bounced, replied, or is active in a sequence
  • The user wants to check a prospect's progress through sequence steps
  • The user asks about outreach activity tied to a sequence

Do NOT use this tool to list the org-level prospect disposition stages — use stage_fetch for that.

Supports filtering by account, opportunity, or state. Returns matching sequence states and total count. Each SequenceState includes: id: int prospect: Prospect | None sequence: Sequence | None sequence_step: SequenceStep | None state: str | None user: User | None updated_at: str | None Supports pagination via limit and offset parameters.

Parameters (0 required, 3 optional)
Optional
additional_filtersarray

Optional list of field filters applied with AND logic. Each filter object has three fields: - "attribute": field identifier (see supported fields below). - "operator": comparison operator (must be valid for the attribute's data type — see below). - "value": list of string values. - For "is" operator: multiple values use OR logic (e.g. ["1", "2"]). IMPORTANT: To filter by multiple values, pass ALL values in a single filter's "value" list. Do NOT make separate calls for each value. Supported filter attributes: REFERENCE (operators: is, isNot, isEmpty, isNotEmpty; value MUST be a list of IDs): - accounts: filter by account IDs. Example: {"attribute": "accounts", "operator": "is", "value": ["123", "456"]} - prospects: filter by prospect IDs. Example: {"attribute": "prospects", "operator": "is", "value": ["789"]} - opportunities: filter by opportunity IDs. Example: {"attribute": "opportunities", "operator": "is", "value": ["101"]} STATE (operators: is, isNot; value is a list of state strings): - state: filter by sequence state. Example: {"attribute": "state", "operator": "is", "value": ["active", "paused"]} There are two categories of state values: Persisted states (stored directly on the sequence-state record): "pending" : not yet activated due to throttles, errors, or scheduling constraints "active" : currently being worked through steps "paused" : temporarily halted; can be resumed "disabled" : turned off by a user or system rule "failed" : delivery or processing failure "bounced" : email bounced "opted_out" : prospect unsubscribed / opted out "finished" : all steps completed Derived filters (query against stat counters or timestamps, not the state column; can overlap with any persisted state): "delivered" : at least one delivery and not bounced (deliver_count > 0 AND state != 'bounced') "opened" : at least one email open (open_count > 0) "clicked" : at least one link click (click_count > 0) "replied" : prospect replied (replied_at IS NOT NULL) "called" : at least one call attempted (call_completed_count > 0 OR call_no_answer_count > 0) "no_reply" : finished without a reply (state = 'finished' AND replied_at IS NULL) "contacted" : delivered or called (union of both conditions) Persisted and derived filters may be combined in the same list. Because derived filters check counters/timestamps rather than the state column, a prospect can match a derived filter while being in any persisted state (e.g., "active" and "opened" at the same time). Common synonyms: "running" / "in progress" / "currently active" → "active" "completed" / "stopped" / "inactive" / "no longer running" → ["failed", "opted_out", "finished", "bounced"] "engaged" / "interacted" → ["opened", "clicked", "replied"] For "isEmpty"/"isNotEmpty": value should be an empty list [].

Default: null
limitinteger

Maximum number of sequence states to return.

Default: 10
offsetinteger

Pagination offset used for fetching sequence states.

Default: 0

Returns the list of prospect lifecycle stages configured for the organization.

stage_fetch
Full Description

Returns the list of prospect lifecycle stages configured for the organization. Stages are org-level configuration labels that classify where a prospect sits in the outreach pipeline. They describe the prospect's overall disposition, NOT their enrollment in a specific sequence.

Example stage names:

  • 'Not Started'
  • 'Not Started
  • Added to Sequence'
  • 'Attempting to Contact'
  • 'In Progress with Rep'
  • 'Closed
  • Unresponsive'
  • 'Closed
  • Not Interested
  • Unsubscribe'
  • 'Closed
  • Using Competitive Product'
  • 'Closed
  • Left Company'
  • 'Closed
  • Bad Timing'

Use this tool when:

  • The user asks "what stages do we have?" or "list all prospect stages"
  • You need to resolve a stage name to its ID for filtering prospects by stage
  • The user wants to know the available disposition categories for prospects

Do NOT use this tool to find which prospects are enrolled in a sequence or to check a prospect's progress through sequence steps — use sequence_state_search for that.

Response:

  • Each stage includes id and name fields.
  • The response 'count' field indicates the total number of stages,

which may exceed the number of records returned when a limit is applied.

Parameters (0 required, 2 optional)
Optional
limitinteger

Maximum number of stages to return. Valid range 1-30.

Default: 10
offsetinteger

Pagination offset used for fetching stages.

Default: 0

Get user using its unique identifier.

user_get_by_id
Full Description

Retrieve an user using its unique identifier and return the corresponding User object including: id: int name: str | None first_name: str | None last_name: str | None email: str | None teams: list[Team] (only id and name are returned for each team)

Note: This tool returns only summary information (id, name) for teams. To get full details about a team, use the team_get_by_id tool with the team's id. To get multiple users by their IDs, use the user_search tool with the ids parameter.

Parameters (1 required)
Required
idinteger

ID of a user (not an account ID, opportunity ID, or prospect ID). Must be a positive integer. Get this from user_search results, opportunity.owner.id, or account.owner.id.

Search for users using supported filters

user_search
Full Description

Search for users using:

  • the supported filters: name (partial or full name) and ids (list of user IDs).
  • additional_filters to filter by field values with AND logic.

By default, locked and guest users are excluded (locked=false, guest=false). To include locked or guest users, pass the corresponding filter with value ["true"] in additional_filters.

PREFERRED over calling team_get_by_id repeatedly: when you need users from multiple teams, use a single user_search call with a team filter (e.g. {"attribute": "team", "operator": "is", "value": ["1", "2", "3"]}) instead of calling team_get_by_id for each team.

Returns a list of Users. Each user contains the same information returned by user_get_by_id tool. The response includes:

  • count: the TOTAL number of matching users (server-side, not limited by the limit parameter).
  • users: the list of user records (up to limit items).

When count > limit, state both the total and the number shown, e.g., "Showing 10 of 50 total users." When count <= limit, state only the count, e.g., "Found 3 users."

Parameters (0 required, 5 optional)
Optional
additional_filtersarray

Optional list of additional field filters applied with AND logic alongside the named parameters above. Each filter object has three fields: - "attribute": field identifier (see supported fields below). - "operator": comparison operator (must be valid for the attribute's data type — see below). - "value": list of string values. - For "is" operator: multiple values use OR logic (e.g. ["admin", "manager"]). IMPORTANT: To filter by multiple values, pass ALL values in a single filter's "value" list. Do NOT make separate calls for each value. Use `favoritedBy` filter to find `my favorite users`, `Joe's favorite users`, etc. MUST use the user's ID as the value. Supported filter attributes by type: REFERENCE (operators: is; value MUST be a list of IDs of the corresponding type — pass ALL IDs in one call): - team, profile, governanceRole, jobRole, favoritedBy (User) BOOLEAN (operators: is; value = ["true"] or ["false"]): - "locked": filter by locked status. Defaults to false if not provided. Example: {"attribute": "locked", "operator": "is", "value": ["true"]} - "guest": filter by guest status. Defaults to false if not provided. Example: {"attribute": "guest", "operator": "is", "value": ["true"]} NUMBER (operators: is; value is a list of numeric strings): - minProspectCount DATE (operators: is, between, gte, lte, null, notnull; value must be ISO datetime e.g. "YYYY-MM-DDTHH:MM:SSZ"): - currentSignInAt For "between": value = ["<start>", "<end>"] For "null"/"notnull": value = ["<any valid datetime>"] (value is ignored but must be valid datetime format) Example: {"attribute": "currentSignInAt", "operator": "gte", "value": ["2024-01-01T00:00:00Z"]} STRING ENUM (operators: is): - calendarSyncState: values "true", "false" Example: {"attribute": "calendarSyncState", "operator": "is", "value": ["true"]} SPECIAL / CONTROLLER-LEVEL (operators: is): - email: user email address

Default: null
idsarray

Filter by a list of user IDs. Returns only users whose ID is in this list.

Default: null
limitinteger

Maximum number of users to return.

Default: 10
namestring

Full or partial user name to search. Cannot be an empty string.

Default: null
offsetinteger

Pagination offset used for fetching users.

Default: 0