Connection
- Authentication: API key.
- Required settings:
- Copper account e-mail — The address of the user who generated the API key.
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.
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 for the grant model and Security for how credentials are protected.Last reviewed against the provider API: October 2026.