---
title: "Outreach MCP server for AI agents - actionlake"
description: "Give Claude 255 Outreach actions through one MCP server: batches, tasks, mailboxes. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/outreach
updated: 2026-10-22
---

Connectors · CRM & sales

# Outreach MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Outreach and the rest of your systems. It gives your agent 255 Outreach actions (94 reads, 122 writes and 39 that wait for a confirmation) and holds the Outreach credential itself, so the agent never does. It paces Outreach's limits and records every call. Connecting Outreach needs your own Outreach OAuth app and one admin sign-in.

[Connect Outreach free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "outreach.prospects.list",
  intent: "check which Outreach account is connected"
}
# Get a Collection of Prospects · read · 1 upstream call
```

- 255 actions in one signed file
- 94 read look, never change
- 122 write create and update
- 39 wait for a yes destructive, confirmed first

Set up

## Connect Outreach in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect Outreach.
   OAuth 2.0, authorization code. You register your own OAuth app with Outreach, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on. actionlake stores what you paste write-only, sealed under your tenant's key.
   Before the first sign-in, Outreach needs an OAuth app of your own, registered in its developer portal. actionlake has no Outreach app to lend you.
   - `access_token` Access token from one sign-in with your own OAuth app
   - `refresh_token` Refresh token from the same sign-in; the access token is renewed from it
   - `client_id` Outreach app OAuth client ID (Outreach Developer Portal > your app > API Access)
   - `client_secret` Outreach app OAuth client secret (shown once when generated)
   ```
   account { op: "connections.requirements", service: "outreach" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "outreach.prospects.list" }
   # get a collection of prospects · read · 1 upstream call
   check { action: "outreach.prospects.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Outreach at a glance

**Sign-in**

OAuth 2.0, authorization code. You register your own OAuth app with Outreach, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on.

**You provide**

`access_token` `refresh_token` `client_id` `client_secret`

**Limits we pace to**

10,000 calls an hour and 10 a second, per connection

**API covered**

Outreach REST API v2 (JSON:API, OpenAPI 3.0.3)`api.outreach.io`

**Built from**

Outreach's documentation, read 22 October 2026[api.outreach.io](https://api.outreach.io/api/v2/schema/openapi.json) [developers.outreach.io](https://developers.outreach.io/api/reference/overview/)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

94 of 94 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

10, so ask can line Outreach up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in Outreach.

255 actions in 51 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **94** read look, never change
- **122** write create and update
- **39** destructive wait for a confirmation

1. ### Batches
   27
   2 read · 21 write · 4 destructive
   Get a Collection of Batches · Account Add Tags · Accounts Add Assignments · Accounts Assign Owner
2. ### Tasks
   14
   2 read · 11 write · 1 destructive
   Get a Collection of Tasks · Create a New Task · Get a Task by ID · Update a Task
3. ### Mailboxes
   9
   2 read · 6 write · 1 destructive
   Get a Collection of Mailboxes · Create a New Mailbox · Get a Mailbox by ID · Update a Mailbox
4. ### Sequences
   9
   2 read · 6 write · 1 destructive
   Create a New Sequence · Get a Collection of Sequences · Get a Sequence by ID · Update a Sequence
5. ### Imports
   7
   1 read · 6 write · 0 destructive
   Accounts Import · Generate Upload Link · Prospects Import · Validate Upload
6. ### Sequence states
   7
   2 read · 4 write · 1 destructive
   Create a New Sequence State · Get a Collection of Sequence States · Get a Sequence State by ID · Delete an Existing Sequence State by ID
7. ### Sequence templates
   7
   2 read · 4 write · 1 destructive
   Create a New Sequence Template · Get a Collection of Sequence Templates · Activate · Deactivate
8. ### Account notes
   5
   2 read · 2 write · 1 destructive
   Get a Collection of Account Notes · Create a New Account Note · Update an Account Note · Delete an Existing Account Note by ID

**43 more areas · 170 actions**

- Accounts **5**
- Call dispositions **5**
- Call purposes **5**
- Content categories **5**
- Email addresses **5**
- Opportunities **5**
- Opportunity prospect roles **5**
- Opportunity stages **5**
- Personas **5**
- Phone numbers **5**
- Products **5**
- Profiles **5**
- Prospect notes **5**
- Prospects **5**
- Purchases **5**
- Recipients **5**
- Roles **5**
- Rulesets **5**
- Snippets **5**
- Stages **5**
- Task dispositions **5**
- Task purposes **5**
- Teams **5**
- Templates **5**
- Webhooks **5**
- Calls **4**
- Content category memberships **4**
- Favorites **4**
- Sequence steps **4**
- Users **4**
- Compliance requests **3**
- Content category ownerships **3**
- Mailings **3**
- Batch items **2**
- Events **2**
- Kaia recordings **2**
- Mail aliases **2**
- Org settings **2**
- Task priorities **2**
- API **1**
- Audit logs **1**
- Duties **1**
- Kaia voice imports **1**

Top actions

## The Outreach API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 53 of Outreach's 53 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `outreach.prospects.list` Get a Collection of Prospects | Get a Collection of Prospects. | read | `crm.contact.list` 177 connectors |
| `outreach.accounts.list` Get a Collection of Accounts | Get a Collection of Accounts. | read | `crm.company.list` 162 connectors |
| `outreach.users.list` Get a Collection of Users | Get a Collection of Users. | read | `identity.user.list` 474 connectors |
| `outreach.opportunities.list` Get a Collection of Opportunities | Get a Collection of Opportunities. | read | `crm.deal.list` 43 connectors |
| `outreach.prospects.create` Create a New Prospect | Create a New Prospect. | write | `crm.contact.create` 161 connectors |
| `outreach.accounts.create` Create a New Account | Create a New Account. | write | `crm.company.create` 142 connectors |
| `outreach.teams.list` Get a Collection of Teams | Get a Collection of Teams. | read | `identity.group.list` 262 connectors |
| `outreach.users.create` Create a New User | Create a New User. | write | `identity.user.create` 262 connectors |
| `outreach.tasks.list` Get a Collection of Tasks | Get a Collection of Tasks. | read | `work.task.list` 122 connectors |
| `outreach.roles.list` Get a Collection of Roles | Get a Collection of Roles. | read | `identity.role.list` 184 connectors |
| `outreach.opportunities.create` Create a New Opportunity | Create a New Opportunity. | write | `crm.deal.create` 43 connectors |
| `outreach.prospects.delete` Delete an Existing Prospect by ID | Delete an Existing Prospect by ID. | destructive | `crm.contact.delete` 147 connectors |

Try it

## Prompts to paste into Claude.

Each one names the Outreach actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Which Outreach deals are due to close this month, and what are they worth in total?
   calls `outreach.opportunities.list`
2. Write write
   Create a New Prospect in Outreach. Show me exactly what you will send before you save it.
   calls `outreach.prospects.create`
3. Across systems read
   Which Outreach companies have invoices in ConnectWise PSA, and how many each?
   calls `outreach.accounts.list` `connectwise_manage.invoices.list`

Across your systems

## Outreach, joined to the rest of your business.

One `ask` fetches from Outreach and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

- Which Outreach companies have invoices in ConnectWise PSA, and how many each?
  `outreach.accounts.list` + `connectwise_manage.invoices.list`, on `crm.company` · [ConnectWise PSA](https://actionlake.com/connectors/connectwise-psa)
- Which Outreach companies have invoices in NetSuite, and how many each?
  `outreach.accounts.list` + `netsuite.views.invoices`, on `crm.company` · [NetSuite](https://actionlake.com/connectors/netsuite)

Also mapped by other connectors `identity.user` **517** `identity.group` **239** `crm.company` **227** `crm.contact` **192** `identity.role` **107** `work.task` **105** `crm.deal` **43** `comm.call` **33**

ask

```
ask {
  intent: "which Outreach companies have invoices in ConnectWise PSA, and how many each",
  steps: [
    { action: "outreach.accounts.list", as: "co", input: {}, limit: 100, max_pages: 5 },
    { action: "connectwise_manage.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 },
    { join: {
        left: "co",
        right: "inv",
        on: "crm.company",
        group_by: "co.name",
        select: ["co.name", "count(inv.id) as invoices"]
    } }
  ]
}
```

Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for Outreach

## Destructive actions wait for a yes.

39 Outreach actions are destructive. The first 10:

- Delete an Existing Prospect by ID `outreach.prospects.delete`
- Delete an Existing Account by ID `outreach.accounts.delete`
- Delete an Existing Opportunity by ID `outreach.opportunities.delete`
- Delete an Existing Team by ID `outreach.teams.delete`
- Delete an Existing Task by ID `outreach.tasks.delete`
- Delete an Existing Role by ID `outreach.roles.delete`
- Delete an Existing Account Note by ID `outreach.account_notes.delete`
- Delete an Existing Call by ID `outreach.calls.delete`
- Delete an Existing Mailbox by ID `outreach.mailboxes.delete`
- Delete an Existing Prospect Note by ID `outreach.prospect_notes.delete`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do outreach.prospects.delete confirm_policy: **human**

Delete an Existing Prospect by ID?

**intent:** the user asked me to delete an Existing Prospect by ID

run suspended · waiting for a named person · key _outreach-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "outreach-agent",
  allowed_actions: ["outreach.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "outreach.prospects.delete", approver: "lead@example.com" },
    { match: "outreach.accounts.delete", approver: "lead@example.com" },
    { match: "outreach.opportunities.delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Outreach only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What Outreach costs on actionlake.

Every Outreach action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Outreach refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 255 Outreach actions
- 255 actions page each page of a long list is one call
- 94 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Outreach action.

255 actions by area: the id your agent calls, what it does, and its effect.

**Batches 27**

- `outreach.batches.account_add_tags` Account Add Tags write
- `outreach.batches.accounts_add_assignments` Accounts Add Assignments write
- `outreach.batches.accounts_assign_owner` Accounts Assign Owner write
- `outreach.batches.accounts_bulk_modify` Accounts Bulk Modify write
- `outreach.batches.accounts_destroy_all` Accounts Destroy All destructive
- `outreach.batches.accounts_remove_all_assignments` Accounts Remove All Assignments write
- `outreach.batches.accounts_remove_assignments` Accounts Remove Assignments write
- `outreach.batches.accounts_remove_tags` Accounts Remove Tags write
- `outreach.batches.cancel` Cancel destructive
- `outreach.batches.confirm` Confirm write
- `outreach.batches.custom_object_bulk_delete` Custom Object Bulk Delete destructive
- `outreach.batches.custom_object_bulk_modify` Custom Object Bulk Modify write
- `outreach.batches.get` Get a Batch by ID read
- `outreach.batches.list` Get a Collection of Batches read
- `outreach.batches.prospects_add_assignments` Prospects Add Assignments write
- `outreach.batches.prospects_add_tags` Prospects Add Tags write
- `outreach.batches.prospects_add_to_sequence` Prospects Add To Sequence write
- `outreach.batches.prospects_assign_account` Prospects Assign Account write
- `outreach.batches.prospects_assign_opportunity` Prospects Assign Opportunity write
- `outreach.batches.prospects_assign_owner` Prospects Assign Owner write
- `outreach.batches.prospects_bulk_modify` Prospects Bulk Modify write
- `outreach.batches.prospects_destroy_all` Prospects Destroy All destructive
- `outreach.batches.prospects_finish_all` Prospects Finish All write
- `outreach.batches.prospects_pause_all` Prospects Pause All write
- `outreach.batches.prospects_remove_all_assignments` Prospects Remove All Assignments write
- `outreach.batches.prospects_remove_assignments` Prospects Remove Assignments write
- `outreach.batches.prospects_remove_tags` Prospects Remove Tags write

**Tasks 14**

- `outreach.tasks.advance` Advance write
- `outreach.tasks.create` Create a New Task write
- `outreach.tasks.delete` Delete an Existing Task by ID destructive
- `outreach.tasks.deliver` Deliver write
- `outreach.tasks.get` Get a Task by ID read
- `outreach.tasks.list` Get a Collection of Tasks read
- `outreach.tasks.log_meet_in_person` Log Meet In Person write
- `outreach.tasks.mark_complete` Mark Complete write
- `outreach.tasks.reassign_owner` Reassign Owner write
- `outreach.tasks.reschedule` Reschedule write
- `outreach.tasks.snooze` Snooze write
- `outreach.tasks.update` Update a Task write
- `outreach.tasks.update_note` Update Note write
- `outreach.tasks.update_opportunity_association` Update Opportunity Association write

**Mailboxes 9**

- `outreach.mailboxes.create` Create a New Mailbox write
- `outreach.mailboxes.delete` Delete an Existing Mailbox by ID destructive
- `outreach.mailboxes.get` Get a Mailbox by ID read
- `outreach.mailboxes.link_ews_master_account` Link Ews Master Account write
- `outreach.mailboxes.list` Get a Collection of Mailboxes read
- `outreach.mailboxes.test_send` Test Send write
- `outreach.mailboxes.test_sync` Test Sync write
- `outreach.mailboxes.unlink_ews_master_account` Unlink Ews Master Account write
- `outreach.mailboxes.update` Update a Mailbox write

**Sequences 9**

- `outreach.sequences.activate` Activate write
- `outreach.sequences.create` Create a New Sequence write
- `outreach.sequences.deactivate` Deactivate write
- `outreach.sequences.delete` Delete an Existing Sequence by ID destructive
- `outreach.sequences.get` Get a Sequence by ID read
- `outreach.sequences.list` Get a Collection of Sequences read
- `outreach.sequences.lock` Lock write
- `outreach.sequences.unlock` Unlock write
- `outreach.sequences.update` Update a Sequence write

**Imports 7**

- `outreach.imports.accounts_import` Accounts Import write
- `outreach.imports.bulk_upsert` Bulk Upsert write
- `outreach.imports.custom_object_bulk_upsert` Custom Object Bulk Upsert write
- `outreach.imports.generate_upload_link` Generate Upload Link write
- `outreach.imports.get` Get an Import by ID read
- `outreach.imports.prospects_import` Prospects Import write
- `outreach.imports.validate_upload` Validate Upload write

**Sequence states 7**

- `outreach.sequence_states.create` Create a New Sequence State write
- `outreach.sequence_states.delete` Delete an Existing Sequence State by ID destructive
- `outreach.sequence_states.finish` Finish write
- `outreach.sequence_states.get` Get a Sequence State by ID read
- `outreach.sequence_states.list` Get a Collection of Sequence States read
- `outreach.sequence_states.pause` Pause write
- `outreach.sequence_states.resume` Resume write

**Sequence templates 7**

- `outreach.sequence_templates.activate` Activate write
- `outreach.sequence_templates.create` Create a New Sequence Template write
- `outreach.sequence_templates.deactivate` Deactivate write
- `outreach.sequence_templates.delete` Delete an Existing Sequence Template by ID destructive
- `outreach.sequence_templates.get` Get a Sequence Template by ID read
- `outreach.sequence_templates.list` Get a Collection of Sequence Templates read
- `outreach.sequence_templates.update` Update a Sequence Template write

**Account notes 5**

- `outreach.account_notes.create` Create a New Account Note write
- `outreach.account_notes.delete` Delete an Existing Account Note by ID destructive
- `outreach.account_notes.get` Get an Account Note by ID read
- `outreach.account_notes.list` Get a Collection of Account Notes read
- `outreach.account_notes.update` Update an Account Note write

**Accounts 5**

- `outreach.accounts.create` Create a New Account write
- `outreach.accounts.delete` Delete an Existing Account by ID destructive
- `outreach.accounts.get` Get an Account by ID read
- `outreach.accounts.list` Get a Collection of Accounts read
- `outreach.accounts.update` Update an Account write

**Call dispositions 5**

- `outreach.call_dispositions.create` Create a New Call Disposition write
- `outreach.call_dispositions.delete` Delete an Existing Call Disposition by ID destructive
- `outreach.call_dispositions.get` Get a Call Disposition by ID read
- `outreach.call_dispositions.list` Get a Collection of Call Dispositions read
- `outreach.call_dispositions.update` Update a Call Disposition write

**Call purposes 5**

- `outreach.call_purposes.create` Create a New Call Purpose write
- `outreach.call_purposes.delete` Delete an Existing Call Purpose by ID destructive
- `outreach.call_purposes.get` Get a Call Purpose by ID read
- `outreach.call_purposes.list` Get a Collection of Call Purposes read
- `outreach.call_purposes.update` Update a Call Purpose write

**Content categories 5**

- `outreach.content_categories.create` Create a New Content Category write
- `outreach.content_categories.delete` Delete an Existing Content Category by ID destructive
- `outreach.content_categories.get` Get a Content Category by ID read
- `outreach.content_categories.list` Get a Collection of Content Categories read
- `outreach.content_categories.update` Update a Content Category write

**Email addresses 5**

- `outreach.email_addresses.create` Create a New Email Address write
- `outreach.email_addresses.delete` Delete an Existing Email Address by ID destructive
- `outreach.email_addresses.get` Get an Email Address by ID read
- `outreach.email_addresses.list` Get a Collection of Email Addresses read
- `outreach.email_addresses.update` Update an Email Address write

**Opportunities 5**

- `outreach.opportunities.create` Create a New Opportunity write
- `outreach.opportunities.delete` Delete an Existing Opportunity by ID destructive
- `outreach.opportunities.get` Get an Opportunity by ID read
- `outreach.opportunities.list` Get a Collection of Opportunities read
- `outreach.opportunities.update` Update an Opportunity write

**Opportunity prospect roles 5**

- `outreach.opportunity_prospect_roles.create` Create a New Opportunity Prospect Role write
- `outreach.opportunity_prospect_roles.delete` Delete an Existing Opportunity Prospect Role by ID destructive
- `outreach.opportunity_prospect_roles.get` Get an Opportunity Prospect Role by ID read
- `outreach.opportunity_prospect_roles.list` Get a Collection of Opportunity Prospect Roles read
- `outreach.opportunity_prospect_roles.update` Update an Opportunity Prospect Role write

**Opportunity stages 5**

- `outreach.opportunity_stages.create` Create a New Opportunity Stage write
- `outreach.opportunity_stages.delete` Delete an Existing Opportunity Stage by ID destructive
- `outreach.opportunity_stages.get` Get an Opportunity Stage by ID read
- `outreach.opportunity_stages.list` Get a Collection of Opportunity Stages read
- `outreach.opportunity_stages.update` Update an Opportunity Stage write

**Personas 5**

- `outreach.personas.create` Create a New Persona write
- `outreach.personas.delete` Delete an Existing Persona by ID destructive
- `outreach.personas.get` Get a Persona by ID read
- `outreach.personas.list` Get a Collection of Personas read
- `outreach.personas.update` Update a Persona write

**Phone numbers 5**

- `outreach.phone_numbers.create` Create a New Phone Number write
- `outreach.phone_numbers.delete` Delete an Existing Phone Number by ID destructive
- `outreach.phone_numbers.get` Get a Phone Number by ID read
- `outreach.phone_numbers.list` Get a Collection of Phone Numbers read
- `outreach.phone_numbers.update` Update a Phone Number write

**Products 5**

- `outreach.products.create` Create a New Product write
- `outreach.products.delete` Delete an Existing Product by ID destructive
- `outreach.products.get` Get a Product by ID read
- `outreach.products.list` Get a Collection of Products read
- `outreach.products.update` Update a Product write

**Profiles 5**

- `outreach.profiles.create` Create a New Profile write
- `outreach.profiles.delete` Delete an Existing Profile by ID destructive
- `outreach.profiles.get` Get a Profile by ID read
- `outreach.profiles.list` Get a Collection of Profiles read
- `outreach.profiles.update` Update a Profile write

**Prospect notes 5**

- `outreach.prospect_notes.create` Create a New Prospect Note write
- `outreach.prospect_notes.delete` Delete an Existing Prospect Note by ID destructive
- `outreach.prospect_notes.get` Get a Prospect Note by ID read
- `outreach.prospect_notes.list` Get a Collection of Prospect Notes read
- `outreach.prospect_notes.update` Update a Prospect Note write

**Prospects 5**

- `outreach.prospects.create` Create a New Prospect write
- `outreach.prospects.delete` Delete an Existing Prospect by ID destructive
- `outreach.prospects.get` Get a Prospect by ID read
- `outreach.prospects.list` Get a Collection of Prospects read
- `outreach.prospects.update` Update a Prospect write

**Purchases 5**

- `outreach.purchases.create` Create a New Purchase write
- `outreach.purchases.delete` Delete an Existing Purchase by ID destructive
- `outreach.purchases.get` Get a Purchase by ID read
- `outreach.purchases.list` Get a Collection of Purchases read
- `outreach.purchases.update` Update a Purchase write

**Recipients 5**

- `outreach.recipients.create` Create a New Recipient write
- `outreach.recipients.delete` Delete an Existing Recipient by ID destructive
- `outreach.recipients.get` Get a Recipient by ID read
- `outreach.recipients.list` Get a Collection of Recipients read
- `outreach.recipients.update` Update a Recipient write

**Roles 5**

- `outreach.roles.create` Create a New Role write
- `outreach.roles.delete` Delete an Existing Role by ID destructive
- `outreach.roles.get` Get a Role by ID read
- `outreach.roles.list` Get a Collection of Roles read
- `outreach.roles.update` Update a Role write

**Rulesets 5**

- `outreach.rulesets.create` Create a New Ruleset write
- `outreach.rulesets.delete` Delete an Existing Ruleset by ID destructive
- `outreach.rulesets.get` Get a Ruleset by ID read
- `outreach.rulesets.list` Get a Collection of Rulesets read
- `outreach.rulesets.update` Update a Ruleset write

**Snippets 5**

- `outreach.snippets.create` Create a New Snippet write
- `outreach.snippets.delete` Delete an Existing Snippet by ID destructive
- `outreach.snippets.get` Get a Snippet by ID read
- `outreach.snippets.list` Get a Collection of Snippets read
- `outreach.snippets.update` Update a Snippet write

**Stages 5**

- `outreach.stages.create` Create a New Stage write
- `outreach.stages.delete` Delete an Existing Stage by ID destructive
- `outreach.stages.get` Get a Stage by ID read
- `outreach.stages.list` Get a Collection of Stages read
- `outreach.stages.update` Update a Stage write

**Task dispositions 5**

- `outreach.task_dispositions.create` Create a New Task Disposition write
- `outreach.task_dispositions.delete` Delete an Existing Task Disposition by ID destructive
- `outreach.task_dispositions.get` Get a Task Disposition by ID read
- `outreach.task_dispositions.list` Get a Collection of Task Dispositions read
- `outreach.task_dispositions.update` Update a Task Disposition write

**Task purposes 5**

- `outreach.task_purposes.create` Create a New Task Purpose write
- `outreach.task_purposes.delete` Delete an Existing Task Purpose by ID destructive
- `outreach.task_purposes.get` Get a Task Purpose by ID read
- `outreach.task_purposes.list` Get a Collection of Task Purposes read
- `outreach.task_purposes.update` Update a Task Purpose write

**Teams 5**

- `outreach.teams.create` Create a New Team write
- `outreach.teams.delete` Delete an Existing Team by ID destructive
- `outreach.teams.get` Get a Team by ID read
- `outreach.teams.list` Get a Collection of Teams read
- `outreach.teams.update` Update a Team write

**Templates 5**

- `outreach.templates.create` Create a New Template write
- `outreach.templates.delete` Delete an Existing Template by ID destructive
- `outreach.templates.get` Get a Template by ID read
- `outreach.templates.list` Get a Collection of Templates read
- `outreach.templates.update` Update a Template write

**Webhooks 5**

- `outreach.webhooks.create` Create a New Webhook write
- `outreach.webhooks.delete` Delete an Existing Webhook by ID destructive
- `outreach.webhooks.get` Get a Webhook by ID read
- `outreach.webhooks.list` Get a Collection of Webhooks read
- `outreach.webhooks.update` Update a Webhook write

**Calls 4**

- `outreach.calls.create` Create a New Call write
- `outreach.calls.delete` Delete an Existing Call by ID destructive
- `outreach.calls.get` Get a Call by ID read
- `outreach.calls.list` Get a Collection of Calls read

**Content category memberships 4**

- `outreach.content_category_memberships.create` Create a New Content Category Membership write
- `outreach.content_category_memberships.delete` Delete an Existing Content Category Membership by ID destructive
- `outreach.content_category_memberships.get` Get a Content Category Membership by ID read
- `outreach.content_category_memberships.list` Get a Collection of Content Category Memberships read

**Favorites 4**

- `outreach.favorites.create` Create a New Favorite write
- `outreach.favorites.delete` Delete an Existing Favorite by ID destructive
- `outreach.favorites.get` Get a Favorite by ID read
- `outreach.favorites.list` Get a Collection of Favorites read

**Sequence steps 4**

- `outreach.sequence_steps.create` Create a New Sequence Step write
- `outreach.sequence_steps.get` Get a Sequence Step by ID read
- `outreach.sequence_steps.list` Get a Collection of Sequence Steps read
- `outreach.sequence_steps.update` Update a Sequence Step write

**Users 4**

- `outreach.users.create` Create a New User write
- `outreach.users.get` Get a User by ID read
- `outreach.users.list` Get a Collection of Users read
- `outreach.users.update` Update a User write

**Compliance requests 3**

- `outreach.compliance_requests.create` Create a New Compliance Request write
- `outreach.compliance_requests.get` Get a Compliance Request by ID read
- `outreach.compliance_requests.list` Get a Collection of Compliance Requests read

**Content category ownerships 3**

- `outreach.content_category_ownerships.create` Create a New Content Category Ownership write
- `outreach.content_category_ownerships.delete` Delete an Existing Content Category Ownership by ID destructive
- `outreach.content_category_ownerships.list` Get a Collection of Content Category Ownerships read

**Mailings 3**

- `outreach.mailings.create` Create a New Mailing write
- `outreach.mailings.get` Get a Mailing by ID read
- `outreach.mailings.list` Get a Collection of Mailings read

**Batch items 2**

- `outreach.batch_items.get` Get a Batch Item by ID read
- `outreach.batch_items.list` Get a Collection of Batch Items read

**Events 2**

- `outreach.events.get` Get an Event by ID read
- `outreach.events.list` Get a Collection of Events read

**Kaia recordings 2**

- `outreach.kaia_recordings.get` Get a Kaia Recording by ID read
- `outreach.kaia_recordings.list` Get a Collection of Kaia Recordings read

**Mail aliases 2**

- `outreach.mail_aliases.get` Get a Mail Alias by ID read
- `outreach.mail_aliases.list` Get a Collection of Mail Aliases read

**Org settings 2**

- `outreach.org_settings.get` Get an Org Setting by ID read
- `outreach.org_settings.update` Update an Org Setting write

**Task priorities 2**

- `outreach.task_priorities.get` Get a Task Priority by ID read
- `outreach.task_priorities.list` Get a Collection of Task Priorities read

**API 1**

- `outreach.api.get_root` Get API root (token and organization info) read

**Audit logs 1**

- `outreach.audit_logs.list` Get a Collection of Audit Logs read

**Duties 1**

- `outreach.duties.list` Get a Collection of Duties read

**Kaia voice imports 1**

- `outreach.kaia_voice_imports.create` Create a New Kaia Voice Import write

Questions

## The Outreach MCP server, answered.

**Is there an Outreach MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 255 Outreach actions across batches, tasks, mailboxes and sequences, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Outreach.

**What do I need to connect Outreach?**

Your own Outreach OAuth app, registered with Outreach (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no Outreach app of its own, so this is not a one-step consent. actionlake renews the access token as it expires. The free call account { op: "connections.requirements", service: "outreach" } lists exactly what to paste.

**Can an AI agent delete or change things in Outreach?**

Only if its key allows it, and only with an explicit confirmation. 39 Outreach actions are destructive, including delete an Existing Prospect by ID, delete an Existing Account by ID and delete an Existing Opportunity by ID. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my Outreach API limit?**

actionlake paces every call to the limits in the Outreach service file: 10,000 calls an hour and 10 a second per connection. Repeated reads are answered from cache (94 Outreach actions can be), which never reaches Outreach.

**What does an Outreach action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (255 Outreach actions page). Cache hits, searches, dry runs and calls Outreach refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which Outreach API does it cover?**

The Outreach REST API v2 (JSON:API, OpenAPI 3.0.3) at api.outreach.io. It is built from Outreach's documentation as read on 22 October 2026. 255 actions in 51 areas, each one in the signed service file (version 1.0.0).

**Can I combine Outreach with my other systems?**

Yes. ask joins Outreach to ConnectWise PSA or NetSuite on the same customer and returns the answer rather than every row. Outreach maps crm.company, which 227 other connectors also map.

**Does actionlake keep my Outreach data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Outreach credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like Outreach

Shares the most action names with

- [ActiveCampaign 32](https://actionlake.com/connectors/activecampaign)
- [Salesloft 30](https://actionlake.com/connectors/salesloft)
- [JobAdder 25](https://actionlake.com/connectors/jobadder)
- [Kommo 24](https://actionlake.com/connectors/kommo)
- [Keap (Infusionsoft) 22](https://actionlake.com/connectors/keap-infusionsoft)
- [Streak CRM for Gmail 20](https://actionlake.com/connectors/streak-crm-for-gmail)

Joins with, on shared entities

- [HaloPSA 6](https://actionlake.com/connectors/halopsa)
- [ERPNext (Frappe) 6](https://actionlake.com/connectors/erpnext-frappe)
- [ScalePad 6](https://actionlake.com/connectors/scalepad)
- [Genesys Cloud CX 5](https://actionlake.com/connectors/genesys-cloud-cx)
- [Odoo 5](https://actionlake.com/connectors/odoo)
- [Productive.io 5](https://actionlake.com/connectors/productive-io)

Browse

- [All CRM & sales connectors](https://actionlake.com/connectors/category/crm-and-sales)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Outreach; the name is the vendor's own. Counts are from the Outreach service file, version 1.0.0.

## Give your agent Outreach today.

[Connect Outreach free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/outreach
More: https://actionlake.com/llms.txt
