> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Copper

> Connect Copper to your Atako agents — 21 read and 11 write actions.

Let your agents work in your Copper CRM: find and update leads, people, companies and opportunities, manage pipelines and tasks, and add notes.

## Connection

* **Authentication**: API key.
* **Required settings**:
  * **Copper account e-mail** — The address of the user who generated the API key.

> [!NOTE]
>
> In the Copper web app: Settings → Integrations → API Keys → Generate API Key (admins only; the key is created without a dialog — name it afterwards in the Label column). Paste the key here and the e-mail of the user who generated it in the account e-mail field.
>
> See [Copper's documentation](https://developer.copper.com/).

## Read actions (21)

| Action | Description |
| - | - |
| `find_person_by_email` | Find a person by e-mail address (e-mail is a unique key for People in Copper). Required: email (string). |
| `get_account` | Get the Copper account (id, name). |
| `get_company` | Get one company by id (name, e-mail domain, phones, address) — the id feed for update\_company. |
| `get_current_user` | Get the authenticated Copper user (id, name, e-mail, groups). Also verifies the credential. |
| `get_lead` | Leads must first be enabled by a Copper admin (Settings → Customization → Lead Management → Enable Leads, plans that include leads); otherwise Copper answers 403 "Feature not enabled". Get one lead by id (name, e-mail, phones, status, source, value) — the id feed for update\_lead. |
| `get_opportunity` | Get one opportunity by id (name, stage, status, company, contact, value, close date) — the id feed for update\_opportunity. |
| `get_person` | Get one person by id (name, e-mails, phones, company, title, address) — the id feed for update\_person. |
| `get_task` | Get one task by id (name, status, assignee, due date, related record) — the id feed for update\_task. |
| `list_activity_types` | List the activity types (id, category, name, is\_disabled, count\_as\_interaction) — Notes have id 0. |
| `list_custom_field_definitions` | List the custom field definitions (id, name, data\_type, currency, options) — the valid custom\_field\_definition\_id values. |
| `list_customer_sources` | List the customer sources (id, name) — the valid customer\_source\_id values. |
| `list_loss_reasons` | List the loss reasons (id, name) — the valid loss\_reason\_id values. |
| `list_pipeline_stages` | List the pipeline stages (id, name, pipeline\_id, win\_probability) — the valid pipeline\_stage\_id values. |
| `list_pipelines` | List the sale pipelines with their stages (id, name, stages, type, is\_revenue). A new account has none. |
| `search_activities` | Search is indexed with a short delay: a record created a few seconds ago may not appear yet (read it with its get\_ action by id). Search activities on a record. Optional: parent (object \{id (number), type: lead\|person\|company\|opportunity\|project\|task}), activity\_types (array of \{id (number), category (string: user\|system)} — ids from list\_activity\_types), minimum\_activity\_date/maximum\_activity\_date (number, Unix seconds), full\_result (boolean), page\_number (number, from 1), page\_size (number, 200 max). |
| `search_companies` | Search is indexed with a short delay: a record created a few seconds ago may not appear yet (read it with its get\_ action by id). Search companies. Optional: name (string, the FULL name — Copper matches it exactly, not a fragment: to find a partial name, page through results and filter them), phone\_number (string), email\_domains (string), contact\_type\_ids (number\[]), assignee\_ids (number\[]), city/state/postal\_code/country (string), tags (string\[]), followed (number: 1 followed, 2 not), age (number, max age in seconds), minimum/maximum\_interaction\_count (number), minimum/maximum\_interaction\_date (number, Unix seconds), minimum/maximum\_created\_date (number, Unix seconds), page\_number (number, from 1), page\_size (number, 200 max), sort\_by (string), sort\_direction (asc\|desc). |
| `search_leads` | Search is indexed with a short delay: a record created a few seconds ago may not appear yet (read it with its get\_ action by id). Leads must first be enabled by a Copper admin (Settings → Customization → Lead Management → Enable Leads, plans that include leads); otherwise Copper answers 403 "Feature not enabled". Search leads. Optional: name (string, the FULL name — Copper matches it exactly, not a fragment: to find a partial name, page through results and filter them), phone\_number (string), emails (string), assignee\_ids (number\[]), status\_ids (number\[]), customer\_source\_ids (number\[]), city/state/postal\_code/country (string), tags (string\[]), followed (number: 1 followed, 2 not), age (number, max age in seconds), minimum\_monetary\_value/maximum\_monetary\_value (number), minimum/maximum\_interaction\_count (number), minimum/maximum\_interaction\_date (number, Unix seconds), minimum/maximum\_created\_date (number, Unix seconds), minimum/maximum\_modified\_date (number, Unix seconds), page\_number (number, from 1), page\_size (number, 200 max), sort\_by (string), sort\_direction (asc\|desc). |
| `search_opportunities` | Search is indexed with a short delay: a record created a few seconds ago may not appear yet (read it with its get\_ action by id). Search opportunities. Optional: name (string, the FULL name — Copper matches it exactly, not a fragment: to find a partial name, page through results and filter them), assignee\_ids (number\[]), status\_ids (number\[]: 0 Open, 1 Won, 2 Lost, 3 Abandoned), pipeline\_ids (number\[]), pipeline\_stage\_ids (number\[]), priority\_ids (number\[]), customer\_source\_ids (number\[]), loss\_reason\_ids (number\[]), company\_ids (number\[]), tags (string\[]), followed (number: 1 followed, 2 not), minimum\_monetary\_value/maximum\_monetary\_value (number), minimum/maximum\_interaction\_count (number), minimum/maximum\_close\_date (number, Unix seconds), minimum/maximum\_interaction\_date, minimum/maximum\_stage\_change\_date, minimum/maximum\_created\_date, minimum/maximum\_modified\_date (number, Unix seconds), page\_number (number, from 1), page\_size (number, 200 max), sort\_by (string), sort\_direction (asc\|desc). |
| `search_people` | Search is indexed with a short delay: a record created a few seconds ago may not appear yet (read it with its get\_ action by id). Search people. Optional: name (string, the FULL name — Copper matches it exactly, not a fragment: to find a partial name, page through results and filter them), phone\_number (string), emails (string\[]), contact\_type\_ids (number\[]), assignee\_ids (number\[]), company\_ids (number\[]), opportunity\_ids (number\[]), city/state/postal\_code/country (string), tags (string\[]), followed (number: 1 followed, 2 not), age (number, max age in seconds), minimum/maximum\_interaction\_count (number), minimum/maximum\_interaction\_date (number, Unix seconds), minimum/maximum\_created\_date (number, Unix seconds), page\_number (number, from 1), page\_size (number, 200 max), sort\_by (string), sort\_direction (asc\|desc). |
| `search_tasks` | Search is indexed with a short delay: a record created a few seconds ago may not appear yet (read it with its get\_ action by id). Search tasks. Optional: assignee\_ids (number\[]), opportunity\_ids (number\[]), project\_ids (number\[]), statuses (string\[]: Open, Completed), tags (string\[]), followed (number: 1 followed, 2 not), minimum/maximum\_due\_date (number, Unix seconds), minimum/maximum\_created\_date (number, Unix seconds), minimum/maximum\_modified\_date (number, Unix seconds), page\_number (number, from 1), page\_size (number, 200 max), sort\_by (string), sort\_direction (asc\|desc). |
| `search_users` | Search is indexed with a short delay: a record created a few seconds ago may not appear yet (read it with its get\_ action by id). Search and list the account users (id, name, e-mail) — the valid assignee\_id values. Optional: page\_number (number, from 1), page\_size (number, 20 default, 200 max). |

## Write actions (11)

| Action | Description |
| - | - |
| `add_note` | Add a note to a record. Required: parent (object \{id (number), type: lead\|person\|company\|opportunity\|project\|task}) — the record to attach the note to, details (string, the note body, free text). |
| `create_company` | Create a company. Required: name (string). Optional: email\_domain (string), contact\_type\_id (number), assignee\_id (number), details (string, free text), address (object \{street, city, state, postal\_code, country}), phone\_numbers (array of \{number (string), category: mobile\|work\|home\|other}), websites (array of \{url (string), category}), socials (array of \{url (string), category}), tags (string\[]), custom\_fields (array of \{custom\_field\_definition\_id (number), value}). |
| `create_lead` | Leads must first be enabled by a Copper admin (Settings → Customization → Lead Management → Enable Leads, plans that include leads); otherwise Copper answers 403 "Feature not enabled". Create a lead. Required: name (string) — or first\_name/last\_name. Optional: prefix, first\_name, middle\_name, last\_name, suffix, title, company\_name (strings), customer\_source\_id (number, from list\_customer\_sources), assignee\_id (number), status (string, the lead status name, defaults to New), email (object \{email (string), category: work\|personal\|other}), phone\_numbers (array of \{number (string), category: mobile\|work\|home\|other}), address (object \{street, city, state, postal\_code, country}), websites (array of \{url (string), category}), socials (array of \{url (string), category}), monetary\_value (number), details (string, free text), tags (string\[]), custom\_fields (array of \{custom\_field\_definition\_id (number), value}). |
| `create_opportunity` | Create an opportunity. Required: name (string), primary\_contact\_id (number, a Person id from search\_people). Optional: company\_id (number), assignee\_id (number, a user id from search\_users), pipeline\_id (number) and pipeline\_stage\_id (number) — call list\_pipelines first, a new account has none, customer\_source\_id (number, from list\_customer\_sources), loss\_reason\_id (number, from list\_loss\_reasons), monetary\_value (number), close\_date (string, MM/DD/YYYY), priority (string), status (string: Open, Won, Lost or Abandoned), win\_probability (number, 0-100), details (string, free text), tags (string\[]), custom\_fields (array of \{custom\_field\_definition\_id (number), value} — ids from list\_custom\_field\_definitions). |
| `create_person` | Create a person. Required: name (string) — or first\_name/last\_name. Optional: prefix, first\_name, middle\_name, last\_name, suffix, title (strings), company\_id (number, a company id from search\_companies), contact\_type\_id (number), assignee\_id (number), details (string, free text), emails (array of \{email (string), category: work\|personal\|other}), phone\_numbers (array of \{number (string), category: mobile\|work\|home\|other}), address (object \{street, city, state, postal\_code, country}), websites (array of \{url (string), category: work\|personal\|other}), socials (array of \{url (string), category}), tags (string\[]), custom\_fields (array of \{custom\_field\_definition\_id (number), value}). |
| `create_task` | Create a task. Required: name (string). Optional: related\_resource (object \{id (number), type: project\|opportunity\|person\|company\|lead}) — the record the task is attached to, assignee\_id (number, from search\_users), due\_date (number, Unix timestamp in seconds), reminder\_date (number, Unix timestamp in seconds), priority (string: None, Low, Medium, High), status (string: Open or Completed), details (string, free text), tags (string\[]), custom\_fields (array of \{custom\_field\_definition\_id (number), value}). |
| `update_company` | Update a company — only the fields you pass change. Required: company\_id (number). Optional: name (string), email\_domain (string), contact\_type\_id (number), assignee\_id (number), details (string), address (object \{street, city, state, postal\_code, country}), phone\_numbers (array of \{number (string), category: mobile\|work\|home\|other}), websites (array of \{url (string), category}), socials (array of \{url (string), category}), tags (string\[]), custom\_fields (array of \{custom\_field\_definition\_id (number), value}). |
| `update_lead` | Leads must first be enabled by a Copper admin (Settings → Customization → Lead Management → Enable Leads, plans that include leads); otherwise Copper answers 403 "Feature not enabled". Update a lead — only the fields you pass change. Required: lead\_id (number). Optional: name, prefix, first\_name, middle\_name, last\_name, suffix, title, company\_name (strings), customer\_source\_id (number), assignee\_id (number), status (string, the lead status name), email (object \{email (string), category: work\|personal\|other}), phone\_numbers (array of \{number (string), category: mobile\|work\|home\|other}), address (object \{street, city, state, postal\_code, country}), websites (array of \{url (string), category}), socials (array of \{url (string), category}), monetary\_value (number), details (string), tags (string\[]), custom\_fields (array of \{custom\_field\_definition\_id (number), value}). |
| `update_opportunity` | Update an opportunity — only the fields you pass change. Required: opportunity\_id (number). Optional: name (string), primary\_contact\_id (number), company\_id (number), assignee\_id (number), pipeline\_id (number), pipeline\_stage\_id (number), customer\_source\_id (number), loss\_reason\_id (number), monetary\_value (number), close\_date (string, MM/DD/YYYY), priority (string), status (string: Open, Won, Lost or Abandoned), win\_probability (number, 0-100), details (string, free text), tags (string\[]), custom\_fields (array of \{custom\_field\_definition\_id (number), value}). |
| `update_person` | Update a person — only the fields you pass change. Required: person\_id (number). Optional: name, prefix, first\_name, middle\_name, last\_name, suffix, title (strings), company\_id (number), contact\_type\_id (number), assignee\_id (number), details (string), emails (array of \{email (string), category: work\|personal\|other}), phone\_numbers (array of \{number (string), category: mobile\|work\|home\|other}), address (object \{street, city, state, postal\_code, country}), websites (array of \{url (string), category}), socials (array of \{url (string), category}), tags (string\[]), custom\_fields (array of \{custom\_field\_definition\_id (number), value}). |
| `update_task` | Update a task — only the fields you pass change. Required: task\_id (number). Optional: name (string), related\_resource (object \{id (number), type: project\|opportunity\|person\|company\|lead}), assignee\_id (number), due\_date (number, Unix seconds), reminder\_date (number, Unix seconds), priority (string), status (string: Open or Completed), details (string), tags (string\[]), custom\_fields (array of \{custom\_field\_definition\_id (number), value}). |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](https://docs.atako.ai/integrations/permissions.md) for the grant model and [Security](https://docs.atako.ai/integrations/security.md) for how credentials are protected.

***

*Last reviewed against the provider API: October 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.