The Copper connector lets your AI agent act in each user's Copper account. Each user connects their own Copper API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 69 tools.
- Tools
- 69
- What they doRead · write · destructive
- 41 · 18 · 1041 read18 write10 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Copper connection
In AgentKit > Connections, create a Copper connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'copper'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Copper:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'copper_current_user_get',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "copper"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Copper:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="copper_current_user_get",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Copper credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolcopper_account_getGet details of the Copper account the API key belongs to.Read-onlyGet Account
Get details of the Copper account the API key belongs to. Returns the account id, name, primary timezone and settings such as whether leads and team permissions are enabled. Use it to check the connection or read account settings. Use copper_current_user_get for the API user.
Inputs
This tool takes no inputs.
copper_activities_searchSearch activities (notes, calls, meetings, emails and system events) across Copper, filtered by parent record, activity type and date range.Read-onlySearch Activities
Search activities (notes, calls, meetings, emails and system events) across Copper, filtered by parent record, activity type and date range. Returns a page of activity records with id, parent, type, details, user_id and activity_date. Use it to page through activity history or filter by date. Use copper_person_activities_list, copper_company_activities_list or copper_lead_activities_list for one record.
Inputs
activity_typesarray- Only return activities of these types. Each item has the activity type id and its category (user or system), from copper_activity_types_list. Example: [{"id": 0, "category": "user"}] for notes.
full_resultboolean- Set true if the search times out. It is faster but can return the same activity more than once (for example an email sent to several users), and only works for administrator API keys. Example: true.
maximum_activity_dateinteger- Only activities on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
minimum_activity_dateinteger- Only activities on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
page_numberinteger- Page of results to return, starting at 1. Combine with page_size to page through results; stop when a page has fewer records than page_size. Example: 1.
page_sizeinteger- Number of records per page, from 1 to 200. Copper's default is 20. Example: 50.
parent_idinteger- ID of the record whose activities to return. Set together with parent_type. Example: 27140359.
parent_typestring- Type of the record whose activities to return: lead, person, company, opportunity, project or task. Set together with parent_id. Example: "person".one of
leadpersoncompanyopportunityprojecttask
copper_activity_getGet one activity (note, call, meeting or system event) in Copper by ID.Read-onlyGet Activity
Get one activity (note, call, meeting or system event) in Copper by ID. Returns the activity record with id, parent, type, details, user_id, activity_date and, for system activities, old_value and new_value. Use it when you have the activity ID. Use copper_activities_search to find activities.
Inputs
activity_idintegerrequired- ID of the activity. Get it from copper_activities_search. Example: 68.
copper_activity_types_listList the activity types in the Copper account, grouped into user types (notes, calls, meetings, custom types) and system types.Read-onlyList Activity Types
List the activity types in the Copper account, grouped into user types (notes, calls, meetings, custom types) and system types. Returns each type's id, category (user or system), name, is_disabled and count_as_interaction. Use it to get the type id and category for copper_activity_create and activity filters. Notes are always id 0.
Inputs
This tool takes no inputs.
copper_companies_searchSearch companies (organizations) in Copper by name, email domain, phone, owner, location, tags, dates or custom fields; all filters combine with AND.Read-onlySearch Companies
Search companies (organizations) in Copper by name, email domain, phone, owner, location, tags, dates or custom fields; all filters combine with AND. Returns a page of company records with id, name, address, email domain, owner, tags and custom fields. Use it to list or find companies. Use copper_company_get when you already have the company ID.
Inputs
ageinteger- Maximum age of the company record, in seconds. Example: 86400.
assignee_idsarray- Only companies owned by these users. Get IDs from copper_users_list. Use -2 for companies with no owner. Example: [137658].
citystring- City the company must be located in. Example: "Austin".
contact_type_idsarray- Only companies with these contact types. Get IDs from copper_contact_types_list. Example: [1].
countrystring- Two-letter country code the company must be located in. Example: "US".
custom_fieldsarray- Filter by custom field values (text fields can't be searched). Each item has a custom_field_definition_id plus either value (a list of option ids for dropdown and multi-select fields, true or false for checkboxes, a number for number fields), or minimum_value and maximum_value for date, percentage and currency ranges. Add allow_empty: true to also match records where a dropdown or multi-select field is empty. Example: [{"custom_field_definition_id": 10, "value": [3]}].
email_domainsstring- Email domain of the company. Example: "acme.com".
followedinteger- Filter by whether the API user follows the company: 1 = followed, 2 = not followed. Example: 1.one of
12 idsarray- Only return these company IDs. Get IDs from earlier search results. Example: [1234567].
maximum_created_dateinteger- Only companies created on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
maximum_interaction_countinteger- Only companies with at most this many interactions. Example: 10.
maximum_interaction_dateinteger- Latest date of the last interaction with the companies, as a Unix timestamp in seconds. Example: 1735689600.
minimum_created_dateinteger- Only companies created on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
minimum_interaction_countinteger- Only companies with at least this many interactions. Example: 1.
minimum_interaction_dateinteger- Earliest date of the last interaction with the companies, as a Unix timestamp in seconds. Example: 1704067200.
namestring- Name of the company to search for. Example: "Acme".
page_numberinteger- Page of results to return, starting at 1. Combine with page_size to page through results; stop when a page has fewer records than page_size. Example: 1.
page_sizeinteger- Number of records per page, from 1 to 200. Copper's default is 20. Example: 50.
phone_numberstring- Phone number to match. Example: "4155551234".
postal_codestring- Postal code the company must be located in. Example: "78701".
socialsarray- Only companies with at least one of these social profile URLs. Example: ["https://www.linkedin.com/company/acme"].
sort_bystring- Field to sort the results by. Copper's default is date_modified. Example: "date_modified".one of
namephonecontactcontact_first_namecontact_last_namedate_modifieddate_createdemail_domaincitystatecountryzipassigneecontact_grouplast_interactioninteraction_countprimary_websitesocials sort_directionstring- Sort direction: asc or desc. Copper's default is asc. Example: "desc".one of
ascdesc statestring- State or province the company must be located in. Example: "TX".
tagsarray- Only companies with at least one of these tags. Example: ["enterprise"].
copper_company_activities_listList the activities (notes, calls, meetings and system events) logged on one company in Copper.Read-onlyList Company Activities
List the activities (notes, calls, meetings and system events) logged on one company in Copper. Returns activity records with id, type, details, user_id and activity_date. Use it for one company's history. Use copper_activities_search to filter by date or page through activities across records.
Inputs
company_idintegerrequired- ID of the company. Get it from copper_companies_search. Example: 1234567.
activity_typesarray- Only return activities of these types. Each item has the activity type id and its category (user or system), from copper_activity_types_list. Example: [{"id": 0, "category": "user"}] for notes.
copper_company_getGet one company (organization) in Copper by ID.Read-onlyGet Company
Get one company (organization) in Copper by ID. Returns the full company record: name, address, email domain, phone numbers, primary contact, owner, tags and custom fields. Use it when you have the company ID. Use copper_companies_search to find companies by name or other fields.
Inputs
company_idintegerrequired- ID of the company. Get it from copper_companies_search. Example: 1234567.
copper_connect_field_links_listList the connect-field links on one Copper record, such as parent company or referred-by connections.Read-onlyList Connect Field Links
List the connect-field links on one Copper record, such as parent company or referred-by connections. Returns each link's id, custom_field_definition_id, source and target. Use it to read connect field values, which don't appear in a record's custom_fields. Add custom_field_definition_id to read one connect field.
Inputs
source_idintegerrequired- ID of the record. Example: 155.
source_typestringrequired- Type of the record, spelled as Copper's docs list it: people, opportunity, lead, company, project or user. Example: "people".one of
peopleopportunityleadcompanyprojectuser custom_field_definition_idinteger- Only return links for this connect field, from copper_custom_field_definitions_list. Example: 178.
copper_contact_types_listList the contact types (such as Customer, Prospect or Partner) defined in the Copper account.Read-onlyList Contact Types
List the contact types (such as Customer, Prospect or Partner) defined in the Copper account. Returns each contact type's id and name. Use it to get contact_type_id values for people and companies.
Inputs
This tool takes no inputs.
copper_current_user_getGet the Copper user the connection authenticates as.Read-onlyGet Current User
Get the Copper user the connection authenticates as. Returns the user's id, name, email and teams. Use it to find your own user ID, for example to assign records to yourself. Use copper_user_get for another user.
Inputs
This tool takes no inputs.
copper_custom_activity_type_getGet one custom activity type in Copper by ID.Read-onlyGet Custom Activity Type
Get one custom activity type in Copper by ID. Returns the type's id, name, icon_type, is_disabled, is_interaction and is_default_task_type. Use it when you have the ID. Use copper_custom_activity_types_list to browse them.
Inputs
custom_activity_type_idintegerrequired- ID of the custom activity type. Get it from copper_custom_activity_types_list. Example: 4.
copper_custom_activity_types_listList the custom activity types defined in the Copper account.Read-onlyList Custom Activity Types
List the custom activity types defined in the Copper account. Returns each custom activity type's id, name, icon_type, is_disabled, is_interaction and is_default_task_type. Use it to see account-specific activity types. Use copper_activity_types_list for every activity type, including built-in ones.
Inputs
This tool takes no inputs.
copper_custom_field_definition_getGet one custom field definition in Copper by ID.Read-onlyGet Custom Field Definition
Get one custom field definition in Copper by ID. Returns the definition's id, name, data_type, available_on, is_filterable, currency and dropdown options. Use it to read one field's options. Use copper_custom_field_definitions_list to find definition IDs.
Inputs
custom_field_definition_idintegerrequired- ID of the custom field definition. Get it from copper_custom_field_definitions_list. Example: 126240.
copper_custom_field_definitions_listList the custom field definitions in the Copper account.Read-onlyList Custom Field Definitions
List the custom field definitions in the Copper account. Returns each definition's id, name, data_type, available_on (record types), is_filterable and dropdown options. Use it to get custom_field_definition_id values and option ids before setting or filtering custom fields. Use copper_custom_field_definition_get for one definition.
Inputs
This tool takes no inputs.
copper_customer_sources_listList the customer sources (where leads and deals come from) defined in the Copper account.Read-onlyList Customer Sources
List the customer sources (where leads and deals come from) defined in the Copper account. Returns each customer source's id and name. Use it to get customer_source_id values for leads and opportunities.
Inputs
This tool takes no inputs.
copper_field_layout_getGet the field layout for a record type in Copper: which standard, custom and embedded-app fields are shown, in what order, and which are required.Read-onlyGet Field Layout
Get the field layout for a record type in Copper: which standard, custom and embedded-app fields are shown, in what order, and which are required. Returns a list of fields with field_id, field_label, field_key, field_type, enabled, required and required_editable. Use it to learn which fields a record needs before creating it. For opportunities, pass pipeline_id.
Inputs
entity_typestringrequired- Record type, as the plural name used in Copper's API paths, such as people, leads, companies or opportunities. Example: "people".
pipeline_idinteger- Pipeline to get the layout for. Required when entity_type is opportunities; get it from copper_pipelines_list. Example: 213214.
copper_file_getGet the metadata of one file attached to a Copper record.Read-onlyGet File
Get the metadata of one file attached to a Copper record. Returns the file's id, file_name, file_size, content_type, creator_id, date_created and date_modified. Use it when you have the file ID. Use copper_files_list to find file IDs.
Inputs
entity_idintegerrequired- ID of the record. Example: 210110.
entity_typestringrequired- Type of the record the files are attached to: leads, people, opportunities, companies or projects. Example: "leads".one of
leadspeopleopportunitiescompaniesprojects file_idintegerrequired- ID of the file. Get it from copper_files_list. Example: 2556402.
copper_files_listList the files attached to a lead, person, opportunity, company or project in Copper.Read-onlyList Files
List the files attached to a lead, person, opportunity, company or project in Copper. Returns file metadata: id, file_name, file_size, content_type, creator_id, date_created and date_modified. Use it to see a record's attachments. Use copper_file_get for one file's metadata.
Inputs
entity_idintegerrequired- ID of the record. Example: 210110.
entity_typestringrequired- Type of the record the files are attached to: leads, people, opportunities, companies or projects. Example: "leads".one of
leadspeopleopportunitiescompaniesprojects
copper_lead_activities_listList the activities (notes, calls, meetings and system events) logged on one lead in Copper.Read-onlyList Lead Activities
List the activities (notes, calls, meetings and system events) logged on one lead in Copper. Returns activity records with id, type, details, user_id and activity_date. Use it for one lead's history. Use copper_activities_search to filter by date or page through activities across records.
Inputs
lead_idintegerrequired- ID of the lead. Get it from copper_leads_search. Example: 8900677.
activity_typesarray- Only return activities of these types. Each item has the activity type id and its category (user or system), from copper_activity_types_list. Example: [{"id": 0, "category": "user"}] for notes.
copper_lead_getGet one lead in Copper by ID.Read-onlyGet Lead
Get one lead in Copper by ID. Returns the full lead record: name, company name, title, email, phone numbers, address, status, source, monetary value, owner, tags and custom fields. Use it when you have the lead ID. Use copper_leads_search to find leads by name, email or other fields.
Inputs
lead_idintegerrequired- ID of the lead. Get it from copper_leads_search. Example: 8900677.
copper_lead_statuses_listList the lead statuses defined in the Copper account.Read-onlyList Lead Statuses
List the lead statuses defined in the Copper account. Returns each lead status's id, name, order and is_default. Use it to get status_ids for copper_leads_search.
Inputs
This tool takes no inputs.
copper_leads_searchSearch leads in Copper by name, email, phone, status, source, owner, value, location, tags, dates or custom fields; all filters combine with AND.Read-onlySearch Leads
Search leads in Copper by name, email, phone, status, source, owner, value, location, tags, dates or custom fields; all filters combine with AND. Returns a page of lead records with id, name, company name, email, status, monetary value, owner, tags and custom fields. Use it to list or find leads. Use copper_lead_get when you already have the lead ID. Converted leads are excluded unless include_converted_leads is true.
Inputs
ageinteger- Maximum age of the lead record, in seconds. Example: 86400.
assignee_idsarray- Only leads owned by these users. Get IDs from copper_users_list. Use -2 for leads with no owner. Example: [137658].
citystring- City the lead must be located in. Example: "Austin".
countrystring- Two-letter country code the lead must be located in. Example: "US".
custom_fieldsarray- Filter by custom field values (text fields can't be searched). Each item has a custom_field_definition_id plus either value (a list of option ids for dropdown and multi-select fields, true or false for checkboxes, a number for number fields), or minimum_value and maximum_value for date, percentage and currency ranges. Add allow_empty: true to also match records where a dropdown or multi-select field is empty. Example: [{"custom_field_definition_id": 10, "value": [3]}].
customer_source_idsarray- Only leads from these customer sources. Get IDs from copper_customer_sources_list. Use -2 for leads with no source. Example: [331242].
emailsstring- Email address of the lead. Example: "jane@acme.com".
followedinteger- Filter by whether the API user follows the lead: 1 = followed, 2 = not followed. Example: 1.one of
12 idsarray- Only return these lead IDs. Get IDs from earlier search results. Example: [8900677].
include_converted_leadsboolean- Set true to also return leads that were already converted. Copper's default is false. Example: true.
maximum_created_dateinteger- Only leads created on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
maximum_interaction_countinteger- Only leads with at most this many interactions. Example: 10.
maximum_interaction_dateinteger- Latest date of the last interaction with the leads, as a Unix timestamp in seconds. Example: 1735689600.
maximum_modified_dateinteger- Only leads modified on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
maximum_monetary_valuenumber- Only leads worth at most this amount. Example: 50000.
minimum_created_dateinteger- Only leads created on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
minimum_interaction_countinteger- Only leads with at least this many interactions. Example: 1.
minimum_interaction_dateinteger- Earliest date of the last interaction with the leads, as a Unix timestamp in seconds. Example: 1704067200.
minimum_modified_dateinteger- Only leads modified on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
minimum_monetary_valuenumber- Only leads worth at least this amount. Example: 1000.
namestring- Full name of the lead to search for. Example: "Jane Doe".
page_numberinteger- Page of results to return, starting at 1. Combine with page_size to page through results; stop when a page has fewer records than page_size. Example: 1.
page_sizeinteger- Number of records per page, from 1 to 200. Copper's default is 20. Example: 50.
phone_numberstring- Phone number to match. Example: "4155551234".
postal_codestring- Postal code the lead must be located in. Example: "78701".
socialsarray- Only leads with at least one of these social profile URLs. Example: ["https://www.linkedin.com/in/janedoe"].
sort_bystring- Field to sort the results by. Copper's default is name. Example: "date_modified".one of
namecompany_nametitlevalueemailphonedate_modifieddate_createdcitystatecountryzipinactive_dayssocials sort_directionstring- Sort direction: asc or desc. Copper's default is asc. Example: "desc".one of
ascdesc statestring- State or province the lead must be located in. Example: "TX".
status_idsarray- Only leads with these statuses. Get IDs from copper_lead_statuses_list. Example: [1].
tagsarray- Only leads with at least one of these tags. Example: ["webinar"].
copper_loss_reasons_listList the reasons an opportunity can be marked Lost in the Copper account.Read-onlyList Loss Reasons
List the reasons an opportunity can be marked Lost in the Copper account. Returns each loss reason's id and name. Use it to get loss_reason_id values for opportunities.
Inputs
This tool takes no inputs.
copper_opportunities_searchSearch opportunities (deals) in Copper by name, pipeline, stage, status, owner, company, contact, value, dates, tags or custom fields; all filters combine with AND.Read-onlySearch Opportunities
Search opportunities (deals) in Copper by name, pipeline, stage, status, owner, company, contact, value, dates, tags or custom fields; all filters combine with AND. Returns a page of opportunity records with id, name, pipeline and stage, status, monetary value, close date, owner, company and custom fields. Use it to list or find deals. Use copper_opportunity_get when you already have the opportunity ID.
Inputs
assignee_idsarray- Only opportunities owned by these users. Get IDs from copper_users_list. Use -2 for opportunities with no owner. Example: [137658].
company_idsarray- Only opportunities linked to these companies. Get IDs from copper_companies_search. Example: [1234567].
custom_fieldsarray- Filter by custom field values (text fields can't be searched). Each item has a custom_field_definition_id plus either value (a list of option ids for dropdown and multi-select fields, true or false for checkboxes, a number for number fields), or minimum_value and maximum_value for date, percentage and currency ranges. Add allow_empty: true to also match records where a dropdown or multi-select field is empty. Example: [{"custom_field_definition_id": 10, "value": [3]}].
customer_source_idsarray- Only opportunities from these customer sources. Get IDs from copper_customer_sources_list. Use -2 for no source. Example: [331242].
followedinteger- Filter by whether the API user follows the opportunity: 1 = followed, 2 = not followed. Example: 1.one of
12 idsarray- Only return these opportunity IDs. Get IDs from earlier search results. Example: [2827698].
loss_reason_idsarray- Only opportunities with these loss reasons. Get IDs from copper_loss_reasons_list. Use -2 for no loss reason. Example: [1].
maximum_close_dateinteger- Only opportunities with a close date on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
maximum_created_dateinteger- Only opportunities created on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
maximum_interaction_countinteger- Only opportunities with at most this many interactions. Example: 10.
maximum_interaction_dateinteger- Latest date of the last interaction, as a Unix timestamp in seconds. Example: 1735689600.
maximum_modified_dateinteger- Only opportunities modified on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
maximum_monetary_valuenumber- Only opportunities worth at most this amount. Example: 50000.
maximum_stage_change_dateinteger- Only opportunities whose stage changed on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
minimum_close_dateinteger- Only opportunities with a close date on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
minimum_created_dateinteger- Only opportunities created on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
minimum_interaction_countinteger- Only opportunities with at least this many interactions. Example: 1.
minimum_interaction_dateinteger- Earliest date of the last interaction, as a Unix timestamp in seconds. Example: 1704067200.
minimum_modified_dateinteger- Only opportunities modified on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
minimum_monetary_valuenumber- Only opportunities worth at least this amount. Example: 1000.
minimum_stage_change_dateinteger- Only opportunities whose stage changed on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
namestring- Name of the opportunity to search for. Example: "Acme renewal".
page_numberinteger- Page of results to return, starting at 1. Combine with page_size to page through results; stop when a page has fewer records than page_size. Example: 1.
page_sizeinteger- Number of records per page, from 1 to 200. Copper's default is 20. Example: 50.
pipeline_idsarray- Only opportunities in these pipelines. Get IDs from copper_pipelines_list. Example: [213214].
pipeline_stage_idsarray- Only opportunities in these pipeline stages. Get IDs from copper_pipeline_stages_list. Example: [12345].
primary_contact_idsarray- Only opportunities whose primary contact is one of these people. Get IDs from copper_people_search. Example: [27140359].
priority_idsarray- Only opportunities with these priority IDs. Example: [1].
sort_bystring- Field to sort the results by. Copper's default is name. Example: "date_modified".one of
assigneecompany_namecustomer_source_iddate_createddate_modifiedinactive_daysinteraction_countlast_interactionmonetary_unitmonetary_valuenameprimary_contactprioritystagestatus sort_directionstring- Sort direction: asc or desc. Copper's default is asc. Example: "desc".one of
ascdesc status_idsarray- Only opportunities with these statuses: 0 = Open, 1 = Won, 2 = Lost, 3 = Abandoned. Example: [0].
tagsarray- Only opportunities with at least one of these tags. Example: ["renewal"].
copper_opportunity_getGet one opportunity (deal) in Copper by ID.Read-onlyGet Opportunity
Get one opportunity (deal) in Copper by ID. Returns the full opportunity record: name, pipeline and stage, status, priority, monetary value, win probability, close date, company, primary contact, owner, tags and custom fields. Use it when you have the opportunity ID. Use copper_opportunities_search to find deals by other fields.
Inputs
opportunity_idintegerrequired- ID of the opportunity. Get it from copper_opportunities_search. Example: 2827698.
copper_people_searchSearch people (contacts) in Copper by name, email, phone, company, owner, location, tags, dates or custom fields; all filters combine with AND.Read-onlySearch People
Search people (contacts) in Copper by name, email, phone, company, owner, location, tags, dates or custom fields; all filters combine with AND. Returns a page of person records with id, name, emails, phone numbers, company, owner, tags and custom fields. Use it to list or find people. Use copper_person_get when you have the ID and copper_person_get_by_email for an exact email.
Inputs
ageinteger- Maximum age of the person record, in seconds. Example: 86400 for records created in the last day.
assignee_idsarray- Only people owned by these users. Get IDs from copper_users_list. Use -2 for people with no owner. Example: [137658].
citystring- City the person must be located in. Example: "Austin".
company_idsarray- Only people belonging to these companies. Get IDs from copper_companies_search. Use -2 for people with no company. Example: [1234567].
contact_type_idsarray- Only people with these contact types. Get IDs from copper_contact_types_list. Example: [1].
countrystring- Two-letter country code the person must be located in. Example: "US".
custom_fieldsarray- Filter by custom field values (text fields can't be searched). Each item has a custom_field_definition_id plus either value (a list of option ids for dropdown and multi-select fields, true or false for checkboxes, a number for number fields), or minimum_value and maximum_value for date, percentage and currency ranges. Add allow_empty: true to also match records where a dropdown or multi-select field is empty. Example: [{"custom_field_definition_id": 10, "value": [3]}].
emailsarray- Email addresses to match. Example: ["jane@acme.com"].
followedinteger- Filter by whether the API user follows the person: 1 = followed, 2 = not followed. Example: 1.one of
12 idsarray- Only return these person IDs. Get IDs from earlier search results. Example: [27140359].
maximum_created_dateinteger- Only people created on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
maximum_interaction_countinteger- Only people with at most this many interactions. Example: 10.
maximum_interaction_dateinteger- Latest date of the last interaction with the people, as a Unix timestamp in seconds. Example: 1735689600.
minimum_created_dateinteger- Only people created on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
minimum_interaction_countinteger- Only people with at least this many interactions. Example: 1.
minimum_interaction_dateinteger- Earliest date of the last interaction with the people, as a Unix timestamp in seconds. Example: 1704067200.
namestring- Full name of the person to search for. Example: "Jane Doe".
opportunity_idsarray- Only people linked to these opportunities. Get IDs from copper_opportunities_search. Example: [2827698].
page_numberinteger- Page of results to return, starting at 1. Combine with page_size to page through results; stop when a page has fewer records than page_size. Example: 1.
page_sizeinteger- Number of records per page, from 1 to 200. Copper's default is 20. Example: 50.
phone_numberstring- Phone number to match. Non-digits are stripped; 7+ digits use fuzzy matching. Example: "4155551234".
postal_codestring- Postal code the person must be located in. Example: "78701".
socialsarray- Only people with at least one of these social profile URLs. Example: ["https://www.linkedin.com/in/janedoe"].
sort_bystring- Field to sort the results by. Copper's default is first_name. Example: "date_modified".one of
nametitleemailphonedate_modifieddate_createdcitystatecountryzipsocials sort_directionstring- Sort direction: asc or desc. Copper's default is asc. Example: "desc".one of
ascdesc statestring- State or province the person must be located in. Example: "TX".
tagsarray- Only people with at least one of these tags. Example: ["enterprise"].
copper_person_activities_listList the activities (notes, calls, meetings and system events) logged on one person in Copper.Read-onlyList Person Activities
List the activities (notes, calls, meetings and system events) logged on one person in Copper. Returns activity records with id, type, details, user_id and activity_date. Use it for one person's history. Use copper_activities_search to filter by date or page through activities across records.
Inputs
person_idintegerrequired- ID of the person. Get it from copper_people_search. Example: 27140359.
activity_typesarray- Only return activities of these types. Each item has the activity type id and its category (user or system), from copper_activity_types_list. Example: [{"id": 0, "category": "user"}] for notes.
copper_person_getGet one person (contact) in Copper by ID.Read-onlyGet Person
Get one person (contact) in Copper by ID. Returns the full person record: name, title, emails, phone numbers, address, company, owner, tags, custom fields and interaction dates. Use it when you have the person ID. Use copper_person_get_by_email to look up by email, and copper_people_search to find people by other fields.
Inputs
person_idintegerrequired- ID of the person. Get it from copper_people_search. Example: 27140359.
copper_person_get_by_emailGet the person (contact) in Copper that has an exact email address; email is unique across people.Read-onlyGet Person by Email
Get the person (contact) in Copper that has an exact email address; email is unique across people. Returns the full person record, or a 404 error when no person has that email. Use it for an exact email lookup. Use copper_people_search for partial or multi-field searches.
Inputs
emailstringrequired- Email address of the person. Example: "jane@acme.com".
copper_pipeline_stages_in_pipeline_listList the stages of one opportunity pipeline in Copper.Read-onlyList Stages in Pipeline
List the stages of one opportunity pipeline in Copper. Returns each stage's id, name, pipeline_id and win_probability. Use it when you know the pipeline. Use copper_pipeline_stages_list for stages across all pipelines.
Inputs
pipeline_idintegerrequired- ID of the pipeline. Get it from copper_pipelines_list. Example: 213214.
copper_pipeline_stages_listList every pipeline stage in the Copper account, across all pipelines.Read-onlyList Pipeline Stages
List every pipeline stage in the Copper account, across all pipelines. Returns each stage's id, name, pipeline_id and win_probability. Use it to look up stage IDs across pipelines. Use copper_pipeline_stages_in_pipeline_list for the stages of one pipeline.
Inputs
This tool takes no inputs.
copper_pipelines_listList the opportunity pipelines in the Copper account.Read-onlyList Pipelines
List the opportunity pipelines in the Copper account. Returns each pipeline's id, name, type, is_revenue and its stages (id, name, win_probability). Use it to get pipeline and stage IDs before creating or moving opportunities. Use copper_pipeline_stages_list for all stages across pipelines.
Inputs
This tool takes no inputs.
copper_project_getGet one project in Copper by ID.Read-onlyGet Project
Get one project in Copper by ID. Returns the full project record: name, related resource, owner, status, details, tags and custom fields. Use it when you have the project ID. Use copper_projects_search to find projects.
Inputs
project_idintegerrequired- ID of the project. Get it from copper_projects_search. Example: 144296.
copper_projects_searchSearch projects in Copper by name, owner, tags, dates or custom fields; all filters combine with AND.Read-onlySearch Projects
Search projects in Copper by name, owner, tags, dates or custom fields; all filters combine with AND. Returns a page of project records with id, name, related resource, owner, status, details, tags and custom fields. Use it to list or find projects. Use copper_project_get when you already have the project ID.
Inputs
assignee_idsarray- Only projects owned by these users. Get IDs from copper_users_list. Use -2 for projects with no owner. Example: [137658].
custom_fieldsarray- Filter by custom field values (text fields can't be searched). Each item has a custom_field_definition_id plus either value (a list of option ids for dropdown and multi-select fields, true or false for checkboxes, a number for number fields), or minimum_value and maximum_value for date, percentage and currency ranges. Add allow_empty: true to also match records where a dropdown or multi-select field is empty. Example: [{"custom_field_definition_id": 10, "value": [3]}].
followedinteger- Filter by whether the API user follows the project: 1 = followed, 2 = not followed. Example: 1.one of
12 idsarray- Only return these project IDs. Get IDs from earlier search results. Example: [144296].
maximum_created_dateinteger- Only projects created on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
maximum_modified_dateinteger- Only projects modified on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
minimum_created_dateinteger- Only projects created on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
minimum_modified_dateinteger- Only projects modified on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
namestring- Name of the project to search for. Example: "Acme onboarding".
page_numberinteger- Page of results to return, starting at 1. Combine with page_size to page through results; stop when a page has fewer records than page_size. Example: 1.
page_sizeinteger- Number of records per page, from 1 to 200. Copper's default is 20. Example: 50.
sort_bystring- Field to sort the results by. Copper's default is name. Example: "date_modified".one of
nameassigned_torelated_tostatusdate_modifieddate_created sort_directionstring- Sort direction: asc or desc. Copper's default is asc. Example: "desc".one of
ascdesc tagsarray- Only projects with at least one of these tags. Example: ["onboarding"].
copper_task_getGet one task in Copper by ID.Read-onlyGet Task
Get one task in Copper by ID. Returns the full task record: name, related resource, owner, due, reminder and completed dates, priority, status, details, tags and custom fields. Use it when you have the task ID. Use copper_tasks_search to find tasks by owner, status or due date.
Inputs
task_idintegerrequired- ID of the task. Get it from copper_tasks_search. Example: 3001.
copper_tasks_searchSearch tasks in Copper by owner, status, related opportunity or project, due date, dates, tags or custom fields; all filters combine with AND.Read-onlySearch Tasks
Search tasks in Copper by owner, status, related opportunity or project, due date, dates, tags or custom fields; all filters combine with AND. Returns a page of task records with id, name, related resource, owner, due and reminder dates, priority, status and tags. Use it to list or find tasks. Use copper_task_get when you already have the task ID.
Inputs
assignee_idsarray- Only tasks owned by these users. Get IDs from copper_users_list. Use -2 for tasks with no owner. Example: [137658].
custom_fieldsarray- Filter by custom field values (text fields can't be searched). Each item has a custom_field_definition_id plus either value (a list of option ids for dropdown and multi-select fields, true or false for checkboxes, a number for number fields), or minimum_value and maximum_value for date, percentage and currency ranges. Add allow_empty: true to also match records where a dropdown or multi-select field is empty. Example: [{"custom_field_definition_id": 10, "value": [3]}].
followedinteger- Filter by whether the API user follows the task: 1 = followed, 2 = not followed. Example: 1.one of
12 idsarray- Only return these task IDs. Get IDs from earlier search results. Example: [3001].
maximum_created_dateinteger- Only tasks created on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
maximum_due_dateinteger- Only tasks due on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
maximum_modified_dateinteger- Only tasks modified on or before this time, as a Unix timestamp in seconds. Example: 1735689600.
minimum_created_dateinteger- Only tasks created on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
minimum_due_dateinteger- Only tasks due on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
minimum_modified_dateinteger- Only tasks modified on or after this time, as a Unix timestamp in seconds. Example: 1704067200.
opportunity_idsarray- Only tasks related to these opportunities. Get IDs from copper_opportunities_search. Example: [2827698].
page_numberinteger- Page of results to return, starting at 1. Combine with page_size to page through results; stop when a page has fewer records than page_size. Example: 1.
page_sizeinteger- Number of records per page, from 1 to 200. Copper's default is 20. Example: 50.
project_idsarray- Only tasks belonging to these projects. Get IDs from copper_projects_search. Use -2 for tasks with no project. Example: [144296].
sort_bystring- Field to sort the results by. Copper's default is due_date. Example: "date_modified".one of
nameassigned_torelated_tostatusprioritydue_datereminder_datecompleted_datedate_createddate_modified sort_directionstring- Sort direction: asc or desc. Copper's default is asc. Example: "desc".one of
ascdesc statusesarray- Only tasks with these statuses: Open or Completed. Example: ["Open"].
tagsarray- Only tasks with at least one of these tags. Example: ["follow-up"].
copper_user_getGet one Copper user (team member) by ID.Read-onlyGet User
Get one Copper user (team member) by ID. Returns the user's id, name, email and teams. Use it when you have a user ID, such as an assignee_id. Use copper_users_list to browse users.
Inputs
user_idintegerrequired- ID of the user. Get it from copper_users_list. Example: 137658.
copper_users_listList the users (team members) in the Copper account, one page at a time.Read-onlyList Users
List the users (team members) in the Copper account, one page at a time. Returns user records with id, name, email and teams. Use it to find user IDs for owner (assignee_id) fields. Use copper_user_get when you have the ID.
Inputs
page_numberinteger- Page of results to return, starting at 1. Combine with page_size to page through results; stop when a page has fewer records than page_size. Example: 1.
page_sizeinteger- Number of records per page, from 1 to 200. Copper's default is 20. Example: 50.
copper_activity_createLog a user activity, such as a note, phone call or meeting, on a lead, person, company, opportunity, project or task in Copper.WriteCreate Activity
Log a user activity, such as a note, phone call or meeting, on a lead, person, company, opportunity, project or task in Copper. Returns the new activity record with its id. Use it to record something that happened. Use copper_task_create for future to-dos. Get the activity type id from copper_activity_types_list (notes are id 0).
Inputs
activity_type_idintegerrequired- ID of a user activity type from copper_activity_types_list. Notes are 0; phone calls, meetings and custom types have account-specific IDs. Example: 0.
detailsstringrequired- Text of the activity, such as the note body or call summary. Example: "Discussed renewal pricing".
parent_idintegerrequired- ID of the record to log the activity on. Example: 27140359.
parent_typestringrequired- Type of record to log the activity on: lead, person, company, opportunity, project or task. Example: "person".one of
leadpersoncompanyopportunityprojecttask activity_dateinteger- When the activity took place, as a Unix timestamp in seconds. Example: 1704067200.
copper_activity_updateUpdate the text or date of a user activity (note, call or meeting) in Copper; system activities can't be changed.WriteUpdate Activity
Update the text or date of a user activity (note, call or meeting) in Copper; system activities can't be changed. Returns the updated activity record. Use it to correct a logged activity. Get the ID from copper_activities_search.
- Idempotent
Inputs
activity_idintegerrequired- ID of the activity. Get it from copper_activities_search. Example: 68.
activity_dateinteger- New time the activity took place, as a Unix timestamp in seconds. Example: 1704067200.
detailsstring- New text of the activity. Example: "Discussed renewal pricing and timeline".
copper_company_createCreate a company (organization) in Copper.WriteCreate Company
Create a company (organization) in Copper. Returns the new company record with its id. Use it to add an organization. The request fails if another company already has the same email_domain; check first with copper_companies_search.
Inputs
namestringrequired- Name of the company. Example: "Acme Inc".
addressobject- Postal address of the company, as an object with street, city, state, postal_code and country (all strings, all optional). Example: {"street": "123 Main Street", "city": "Savannah", "state": "Georgia", "postal_code": "31410", "country": "United States"}.
assignee_idinteger- ID of the Copper user who owns the company. Get user IDs from copper_users_list. Example: 137658.
contact_type_idinteger- Contact type of the company, from copper_contact_types_list. Example: 1.
custom_fieldsarray- Custom field values for the company. Each item has a custom_field_definition_id (from copper_custom_field_definitions_list) and a value: a string, a number, a Unix timestamp for dates, an option id for dropdowns, or a list of option ids for multi-selects. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
detailsstring- Free-text description or notes for the company. Example: "Met at the Austin trade show".
email_domainstring- Email domain of the company. It must be unique across companies. Example: "acme.com".
phone_numbersarray- Phone numbers of the company. Each item has a number and a category such as work, mobile, home or other. Example: [{"number": "415-123-4567", "category": "work"}].
primary_contact_idinteger- ID of the person who is the company's primary contact, from copper_people_search. Example: 27140359.
socialsarray- Social profiles of the company. Each item has a url and a category such as linkedin, twitter or facebook. Example: [{"url": "https://www.linkedin.com/in/janedoe", "category": "linkedin"}].
tagsarray- Tags to put on the company, as plain strings. Example: ["enterprise", "q3"].
websitesarray- Websites of the company. Each item has a url and a category such as work or personal. Example: [{"url": "https://www.acme.com", "category": "work"}].
copper_company_updateUpdate fields on an existing company in Copper; fields you leave out stay unchanged.WriteUpdate Company
Update fields on an existing company in Copper; fields you leave out stay unchanged. Returns the updated company record. Use it to edit an organization. Get the ID from copper_companies_search.
- Idempotent
Inputs
company_idintegerrequired- ID of the company. Get it from copper_companies_search. Example: 1234567.
addressobject- Postal address of the company, as an object with street, city, state, postal_code and country (all strings, all optional). Example: {"street": "123 Main Street", "city": "Savannah", "state": "Georgia", "postal_code": "31410", "country": "United States"}.
assignee_idinteger- ID of the Copper user who owns the company. Get user IDs from copper_users_list. Example: 137658.
contact_type_idinteger- Contact type of the company, from copper_contact_types_list. Example: 1.
custom_fieldsarray- Custom field values for the company. Each item has a custom_field_definition_id (from copper_custom_field_definitions_list) and a value: a string, a number, a Unix timestamp for dates, an option id for dropdowns, or a list of option ids for multi-selects. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
detailsstring- Free-text description or notes for the company. Example: "Met at the Austin trade show".
email_domainstring- Email domain of the company. It must be unique across companies. Example: "acme.com".
namestring- New name of the company. Example: "Acme Inc".
phone_numbersarray- Phone numbers of the company. Each item has a number and a category such as work, mobile, home or other. Example: [{"number": "415-123-4567", "category": "work"}].
primary_contact_idinteger- ID of the person who is the company's primary contact, from copper_people_search. Example: 27140359.
socialsarray- Social profiles of the company. Each item has a url and a category such as linkedin, twitter or facebook. Example: [{"url": "https://www.linkedin.com/in/janedoe", "category": "linkedin"}].
tagsarray- Tags to put on the company, as plain strings. On update this replaces the record's whole tag list. Example: ["enterprise", "q3"].
websitesarray- Websites of the company. Each item has a url and a category such as work or personal. Example: [{"url": "https://www.acme.com", "category": "work"}].
copper_connect_field_link_createAdd a link to a connect field between two Copper records, for example setting one company as another's parent.WriteCreate Connect Field Link
Add a link to a connect field between two Copper records, for example setting one company as another's parent. Returns the new link with its id, custom_field_definition_id, source and target. Use it to set connect field values; they can't be written through custom_fields. Use copper_connect_field_link_delete to remove one.
Inputs
custom_field_definition_idintegerrequired- ID of the connect field, from copper_custom_field_definitions_list (data_type Connect). Example: 169.
source_entity_typestringrequired- Type of the record that holds the connect field, spelled as Copper's docs list connect-field sources: people, opportunity, lead, company, project or user. Example: "company".one of
peopleopportunityleadcompanyprojectuser source_idintegerrequired- ID of the record that holds the connect field. Example: 1001.
target_entity_typestringrequired- Type of the record to connect to, from the same list: people, opportunity, lead, company, project or user. Example: "company".one of
peopleopportunityleadcompanyprojectuser target_idintegerrequired- ID of the record to connect to. Example: 1002.
copper_lead_convertConvert a lead into a person, optionally with a company and an opportunity, in one step; Copper removes the lead afterwards.WriteConvert Lead
Convert a lead into a person, optionally with a company and an opportunity, in one step; Copper removes the lead afterwards. Returns the created person, company and opportunity records. Use it when a lead is qualified. Use copper_lead_update to change the lead's status without converting it.
Inputs
lead_idintegerrequired- ID of the lead. Get it from copper_leads_search. Example: 8900677.
companyobject- Company for the new person: either an existing company id, or a name (an existing company with that name is used, otherwise one is created). Set name to "" to create no company, and exact_match to true to skip fuzzy name matching. Example: {"name": "Acme Inc", "exact_match": true}.
opportunityobject- Opportunity to create from the lead: name, pipeline_id, pipeline_stage_id (defaults to the pipeline's first stage), monetary_value and assignee_id. Leave empty to create no opportunity. Example: {"name": "Acme renewal", "pipeline_id": 213214, "monetary_value": 1000}.
personobject- Overrides for the new person: name, contact_type_id and assignee_id. Leave empty to copy the lead's values. Example: {"name": "Jane Doe", "assignee_id": 137658}.
copper_lead_createCreate a lead (unqualified prospect) in Copper.WriteCreate Lead
Create a lead (unqualified prospect) in Copper. Returns the new lead record with its id. Use it to capture a new prospect. Use copper_lead_upsert to avoid duplicates by matching on name, email or a custom field, and copper_person_create for qualified contacts.
Inputs
namestringrequired- Full name of the lead. Example: "Jane Doe".
addressobject- Postal address of the lead, as an object with street, city, state, postal_code and country (all strings, all optional). Example: {"street": "123 Main Street", "city": "Savannah", "state": "Georgia", "postal_code": "31410", "country": "United States"}.
assignee_idinteger- ID of the Copper user who owns the lead. Get user IDs from copper_users_list. Example: 137658.
company_namestring- Name of the company the lead works for. Example: "Acme Inc".
custom_fieldsarray- Custom field values for the lead. Each item has a custom_field_definition_id (from copper_custom_field_definitions_list) and a value: a string, a number, a Unix timestamp for dates, an option id for dropdowns, or a list of option ids for multi-selects. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
customer_source_idinteger- Customer source that generated the lead, from copper_customer_sources_list. Example: 331242.
detailsstring- Free-text description or notes for the lead. Example: "Met at the Austin trade show".
emailobject- Email of the lead, as an object with email and category (work, personal or other). Example: {"email": "jane@acme.com", "category": "work"}.
monetary_valuenumber- Expected monetary value of business with the lead. Example: 5000.
phone_numbersarray- Phone numbers of the lead. Each item has a number and a category such as work, mobile, home or other. Example: [{"number": "415-123-4567", "category": "work"}].
socialsarray- Social profiles of the lead. Each item has a url and a category such as linkedin, twitter or facebook. Example: [{"url": "https://www.linkedin.com/in/janedoe", "category": "linkedin"}].
statusstring- Lead status. One of New, Unqualified, Contacted, Qualified. Example: "New".one of
NewUnqualifiedContactedQualified tagsarray- Tags to put on the lead, as plain strings. Example: ["enterprise", "q3"].
titlestring- Job title of the lead. Example: "Head of Operations".
websitesarray- Websites of the lead. Each item has a url and a category such as work or personal. Example: [{"url": "https://www.acme.com", "category": "work"}].
copper_lead_updateUpdate fields on an existing lead in Copper; fields you leave out stay unchanged.WriteUpdate Lead
Update fields on an existing lead in Copper; fields you leave out stay unchanged. Returns the updated lead record. Use it to edit a lead you have the ID for. Use copper_lead_upsert to update-or-create by matching criteria, and copper_lead_convert to turn it into a person.
- Idempotent
Inputs
lead_idintegerrequired- ID of the lead. Get it from copper_leads_search. Example: 8900677.
addressobject- Postal address of the lead, as an object with street, city, state, postal_code and country (all strings, all optional). Example: {"street": "123 Main Street", "city": "Savannah", "state": "Georgia", "postal_code": "31410", "country": "United States"}.
assignee_idinteger- ID of the Copper user who owns the lead. Get user IDs from copper_users_list. Example: 137658.
company_namestring- Name of the company the lead works for. Example: "Acme Inc".
custom_fieldsarray- Custom field values for the lead. Each item has a custom_field_definition_id (from copper_custom_field_definitions_list) and a value: a string, a number, a Unix timestamp for dates, an option id for dropdowns, or a list of option ids for multi-selects. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
customer_source_idinteger- Customer source that generated the lead, from copper_customer_sources_list. Example: 331242.
detailsstring- Free-text description or notes for the lead. Example: "Met at the Austin trade show".
emailobject- Email of the lead, as an object with email and category (work, personal or other). Example: {"email": "jane@acme.com", "category": "work"}.
monetary_valuenumber- Expected monetary value of business with the lead. Example: 5000.
namestring- New full name of the lead. Example: "Jane Doe".
phone_numbersarray- Phone numbers of the lead. Each item has a number and a category such as work, mobile, home or other. Example: [{"number": "415-123-4567", "category": "work"}].
socialsarray- Social profiles of the lead. Each item has a url and a category such as linkedin, twitter or facebook. Example: [{"url": "https://www.linkedin.com/in/janedoe", "category": "linkedin"}].
statusstring- Lead status. One of New, Unqualified, Contacted, Qualified. Example: "New".one of
NewUnqualifiedContactedQualified tagsarray- Tags to put on the lead, as plain strings. On update this replaces the record's whole tag list. Example: ["enterprise", "q3"].
titlestring- Job title of the lead. Example: "Head of Operations".
websitesarray- Websites of the lead. Each item has a url and a category such as work or personal. Example: [{"url": "https://www.acme.com", "category": "work"}].
copper_lead_upsertUpdate the one lead that matches a name, email or custom field value, or create a new lead when none matches.WriteUpsert Lead
Update the one lead that matches a name, email or custom field value, or create a new lead when none matches. Returns the updated or created lead record; when more than one lead matches, Copper returns a 422 error listing the matching IDs. Use it to sync leads without creating duplicates. Use copper_lead_create or copper_lead_update when you already know whether the lead exists.
Inputs
match_field_namestringrequired- What to match existing leads on: name, email, or custom (a custom field). Example: "email".one of
nameemailcustom propertiesobjectrequired- Lead fields to set, using the same names as copper_lead_create: name, email ({email, category}), phone_numbers, address, company_name, title, status, customer_source_id, monetary_value, assignee_id, details, websites, socials, tags and custom_fields. Example: {"name": "Jane Doe", "email": {"email": "jane@acme.com", "category": "work"}}.
match_custom_field_definition_idinteger- Custom field to match on when match_field_name is custom, from copper_custom_field_definitions_list. The field must be available on leads and filterable. Example: 100764.
match_custom_field_valuestring- Custom field value to match when match_field_name is custom. Example: "EXT-1001".
match_field_valuestring- Value to match. For name or email, the name or email address. Example: "jane@acme.com". For custom, leave this empty and set match_custom_field_definition_id and match_custom_field_value instead.
copper_opportunity_createCreate an opportunity (deal) in Copper.WriteCreate Opportunity
Create an opportunity (deal) in Copper. Returns the new opportunity record with its id. Use it to open a new deal. Use copper_lead_convert to create a deal while converting a lead. Get pipeline and stage IDs from copper_pipelines_list first if you set them.
Inputs
namestringrequired- Name of the opportunity. Example: "Acme renewal 2025".
assignee_idinteger- ID of the Copper user who owns the opportunity. Get user IDs from copper_users_list. Example: 137658.
close_datestring- Expected close date as MM/DD/YYYY (or DD/MM/YYYY, following the account's date format). Example: "12/31/2025".
company_idinteger- ID of the company the deal is with, from copper_companies_search. Example: 1234567.
custom_fieldsarray- Custom field values for the opportunity. Each item has a custom_field_definition_id (from copper_custom_field_definitions_list) and a value: a string, a number, a Unix timestamp for dates, an option id for dropdowns, or a list of option ids for multi-selects. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
customer_source_idinteger- Customer source of the deal, from copper_customer_sources_list. Example: 331242.
detailsstring- Free-text description or notes for the opportunity. Example: "Met at the Austin trade show".
loss_reason_idinteger- Reason the deal was lost, from copper_loss_reasons_list. Only meaningful when status is Lost. Example: 1.
monetary_valuenumber- Value of the deal. Example: 25000.
pipeline_idinteger- Pipeline the deal is in, from copper_pipelines_list. Example: 213214.
pipeline_stage_idinteger- Stage of the deal within its pipeline, from copper_pipeline_stages_list. Example: 12345.
primary_contact_idinteger- ID of the person who is the deal's primary contact, from copper_people_search. Example: 27140359.
prioritystring- Deal priority. One of None, Low, Medium, High. Example: "High".one of
NoneLowMediumHigh statusstring- Deal status. One of Open, Won, Lost, Abandoned. Example: "Open".one of
OpenWonLostAbandoned tagsarray- Tags to put on the opportunity, as plain strings. Example: ["enterprise", "q3"].
win_probabilityinteger- Expected probability of winning, from 0 to 100. Example: 60.
copper_opportunity_updateUpdate fields on an existing opportunity (deal) in Copper, such as its stage, status or value; fields you leave out stay unchanged.WriteUpdate Opportunity
Update fields on an existing opportunity (deal) in Copper, such as its stage, status or value; fields you leave out stay unchanged. Returns the updated opportunity record. Use it to move a deal through the pipeline or edit it. Get the ID from copper_opportunities_search.
- Idempotent
Inputs
opportunity_idintegerrequired- ID of the opportunity. Get it from copper_opportunities_search. Example: 2827698.
assignee_idinteger- ID of the Copper user who owns the opportunity. Get user IDs from copper_users_list. Example: 137658.
close_datestring- Expected close date as MM/DD/YYYY (or DD/MM/YYYY, following the account's date format). Example: "12/31/2025".
company_idinteger- ID of the company the deal is with, from copper_companies_search. Example: 1234567.
custom_fieldsarray- Custom field values for the opportunity. Each item has a custom_field_definition_id (from copper_custom_field_definitions_list) and a value: a string, a number, a Unix timestamp for dates, an option id for dropdowns, or a list of option ids for multi-selects. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
customer_source_idinteger- Customer source of the deal, from copper_customer_sources_list. Example: 331242.
detailsstring- Free-text description or notes for the opportunity. Example: "Met at the Austin trade show".
loss_reason_idinteger- Reason the deal was lost, from copper_loss_reasons_list. Only meaningful when status is Lost. Example: 1.
monetary_valuenumber- Value of the deal. Example: 25000.
namestring- New name of the opportunity. Example: "Acme renewal 2025".
pipeline_idinteger- Pipeline the deal is in, from copper_pipelines_list. Example: 213214.
pipeline_stage_idinteger- Stage of the deal within its pipeline, from copper_pipeline_stages_list. Example: 12345.
primary_contact_idinteger- ID of the person who is the deal's primary contact, from copper_people_search. Example: 27140359.
prioritystring- Deal priority. One of None, Low, Medium, High. Example: "High".one of
NoneLowMediumHigh statusstring- Deal status. One of Open, Won, Lost, Abandoned. Example: "Open".one of
OpenWonLostAbandoned tagsarray- Tags to put on the opportunity, as plain strings. On update this replaces the record's whole tag list. Example: ["enterprise", "q3"].
win_probabilityinteger- Expected probability of winning, from 0 to 100. Example: 60.
copper_person_createCreate a person (contact) in Copper.WriteCreate Person
Create a person (contact) in Copper. Returns the new person record with its id. Use it to add a contact. The request fails if another person already has one of the emails; check first with copper_person_get_by_email. Use copper_lead_create for unqualified prospects.
Inputs
namestringrequired- Full name of the person. Example: "Jane Doe".
addressobject- Postal address of the person, as an object with street, city, state, postal_code and country (all strings, all optional). Example: {"street": "123 Main Street", "city": "Savannah", "state": "Georgia", "postal_code": "31410", "country": "United States"}.
assignee_idinteger- ID of the Copper user who owns the person. Get user IDs from copper_users_list. Example: 137658.
company_idinteger- ID of the company the person belongs to, from copper_companies_search. Example: 1234567.
company_namestring- Name of the person's company, used when you don't have a company ID. Example: "Acme Inc".
contact_type_idinteger- Contact type of the person, from copper_contact_types_list. Example: 1.
custom_fieldsarray- Custom field values for the person. Each item has a custom_field_definition_id (from copper_custom_field_definitions_list) and a value: a string, a number, a Unix timestamp for dates, an option id for dropdowns, or a list of option ids for multi-selects. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
detailsstring- Free-text description or notes for the person. Example: "Met at the Austin trade show".
emailsarray- Email addresses of the person. Each item has an email and a category such as work, personal or other. Email must be unique across people. Example: [{"email": "jane@acme.com", "category": "work"}].
phone_numbersarray- Phone numbers of the person. Each item has a number and a category such as work, mobile, home or other. Example: [{"number": "415-123-4567", "category": "work"}].
socialsarray- Social profiles of the person. Each item has a url and a category such as linkedin, twitter or facebook. Example: [{"url": "https://www.linkedin.com/in/janedoe", "category": "linkedin"}].
tagsarray- Tags to put on the person, as plain strings. Example: ["enterprise", "q3"].
titlestring- Job title of the person. Example: "VP of Sales".
websitesarray- Websites of the person. Each item has a url and a category such as work or personal. Example: [{"url": "https://www.acme.com", "category": "work"}].
copper_person_updateUpdate fields on an existing person (contact) in Copper; fields you leave out stay unchanged.WriteUpdate Person
Update fields on an existing person (contact) in Copper; fields you leave out stay unchanged. Returns the updated person record. Use it to edit a contact. To change the person's company, use copper_related_item_remove and copper_related_item_add instead. Get the ID from copper_people_search.
- Idempotent
Inputs
person_idintegerrequired- ID of the person. Get it from copper_people_search. Example: 27140359.
addressobject- Postal address of the person, as an object with street, city, state, postal_code and country (all strings, all optional). Example: {"street": "123 Main Street", "city": "Savannah", "state": "Georgia", "postal_code": "31410", "country": "United States"}.
assignee_idinteger- ID of the Copper user who owns the person. Get user IDs from copper_users_list. Example: 137658.
contact_type_idinteger- Contact type of the person, from copper_contact_types_list. Example: 1.
custom_fieldsarray- Custom field values to set on the person. Each item has a custom_field_definition_id and a value. Only send the fields you are changing: connect fields read back as [] and sending [] removes their connections. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
detailsstring- Free-text description or notes for the person. Example: "Met at the Austin trade show".
emailsarray- Email addresses of the person. Each item has an email and a category such as work, personal or other. Email must be unique across people. Example: [{"email": "jane@acme.com", "category": "work"}].
namestring- New full name of the person. Example: "Jane Doe".
phone_numbersarray- Phone numbers of the person. Each item has a number and a category such as work, mobile, home or other. Example: [{"number": "415-123-4567", "category": "work"}].
socialsarray- Social profiles of the person. Each item has a url and a category such as linkedin, twitter or facebook. Example: [{"url": "https://www.linkedin.com/in/janedoe", "category": "linkedin"}].
tagsarray- Tags to put on the person, as plain strings. On update this replaces the record's whole tag list. Example: ["enterprise", "q3"].
titlestring- Job title of the person. Example: "VP of Sales".
websitesarray- Websites of the person. Each item has a url and a category such as work or personal. Example: [{"url": "https://www.acme.com", "category": "work"}].
copper_project_createCreate a project in Copper, optionally attached to a person, company or opportunity.WriteCreate Project
Create a project in Copper, optionally attached to a person, company or opportunity. Returns the new project record with its id. Use it for larger pieces of work. Use copper_task_create for single to-dos.
Inputs
namestringrequired- Name of the project. Example: "Acme onboarding".
assignee_idinteger- ID of the Copper user who owns the project. Get user IDs from copper_users_list. Example: 137658.
custom_fieldsarray- Custom field values for the project. Each item has a custom_field_definition_id (from copper_custom_field_definitions_list) and a value: a string, a number, a Unix timestamp for dates, an option id for dropdowns, or a list of option ids for multi-selects. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
detailsstring- Free-text description or notes for the project. Example: "Met at the Austin trade show".
related_resource_idinteger- ID of the record the project is attached to. Set together with related_resource_type. Example: 1234567.
related_resource_typestring- Type of record the project is attached to: person, company or opportunity. Set together with related_resource_id. Example: "company".one of
personcompanyopportunity statusstring- Project status: Open or Completed. Example: "Open".one of
OpenCompleted tagsarray- Tags to put on the project, as plain strings. Example: ["enterprise", "q3"].
copper_project_updateUpdate fields on an existing project in Copper, for example to mark it Completed; fields you leave out stay unchanged.WriteUpdate Project
Update fields on an existing project in Copper, for example to mark it Completed; fields you leave out stay unchanged. Returns the updated project record. Use it to edit or complete a project. Get the ID from copper_projects_search.
- Idempotent
Inputs
project_idintegerrequired- ID of the project. Get it from copper_projects_search. Example: 144296.
assignee_idinteger- ID of the Copper user who owns the project. Get user IDs from copper_users_list. Example: 137658.
custom_fieldsarray- Custom field values for the project. Each item has a custom_field_definition_id (from copper_custom_field_definitions_list) and a value: a string, a number, a Unix timestamp for dates, an option id for dropdowns, or a list of option ids for multi-selects. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
detailsstring- Free-text description or notes for the project. Example: "Met at the Austin trade show".
namestring- New name of the project. Example: "Acme onboarding phase 2".
related_resource_idinteger- ID of the record the project is attached to. Set together with related_resource_type. Example: 1234567.
related_resource_typestring- Type of record the project is attached to: person, company or opportunity. Set together with related_resource_id. Example: "company".one of
personcompanyopportunity statusstring- Project status: Open or Completed. Example: "Open".one of
OpenCompleted tagsarray- Tags to put on the project, as plain strings. On update this replaces the record's whole tag list. Example: ["enterprise", "q3"].
copper_task_createCreate a task in Copper, optionally attached to a lead, person, company, opportunity or project.WriteCreate Task
Create a task in Copper, optionally attached to a lead, person, company, opportunity or project. Returns the new task record with its id. Use it to schedule follow-up work. Use copper_activity_create to log something that already happened.
Inputs
namestringrequired- Name of the task. Example: "Send proposal".
assignee_idinteger- ID of the Copper user who owns the task. Get user IDs from copper_users_list. Example: 137658.
custom_fieldsarray- Custom field values for the task. Each item has a custom_field_definition_id (from copper_custom_field_definitions_list) and a value: a string, a number, a Unix timestamp for dates, an option id for dropdowns, or a list of option ids for multi-selects. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
detailsstring- Free-text description or notes for the task. Example: "Met at the Austin trade show".
due_dateinteger- When the task is due, as a Unix timestamp in seconds. Example: 1704067200.
prioritystring- Task priority. One of None, Low, Medium, High. Example: "High".one of
NoneLowMediumHigh related_resource_idinteger- ID of the record the task is attached to. Set together with related_resource_type. Example: 2827698.
related_resource_typestring- Type of record the task is attached to: lead, person, company, opportunity or project. Set together with related_resource_id. Example: "opportunity".one of
leadpersoncompanyopportunityproject reminder_dateinteger- When to send a reminder about the task, as a Unix timestamp in seconds. Example: 1704067200.
statusstring- Task status: Open or Completed. Setting Completed also sets the completed date. Example: "Open".one of
OpenCompleted tagsarray- Tags to put on the task, as plain strings. Example: ["enterprise", "q3"].
copper_task_updateUpdate fields on an existing task in Copper, for example to mark it Completed or change its due date; fields you leave out stay unchanged.WriteUpdate Task
Update fields on an existing task in Copper, for example to mark it Completed or change its due date; fields you leave out stay unchanged. Returns the updated task record. Use it to edit or complete a task. Get the ID from copper_tasks_search.
- Idempotent
Inputs
task_idintegerrequired- ID of the task. Get it from copper_tasks_search. Example: 3001.
assignee_idinteger- ID of the Copper user who owns the task. Get user IDs from copper_users_list. Example: 137658.
custom_fieldsarray- Custom field values for the task. Each item has a custom_field_definition_id (from copper_custom_field_definitions_list) and a value: a string, a number, a Unix timestamp for dates, an option id for dropdowns, or a list of option ids for multi-selects. Example: [{"custom_field_definition_id": 100764, "value": "Referral"}].
detailsstring- Free-text description or notes for the task. Example: "Met at the Austin trade show".
due_dateinteger- When the task is due, as a Unix timestamp in seconds. Example: 1704067200.
namestring- New name of the task. Example: "Send revised proposal".
prioritystring- Task priority. One of None, Low, Medium, High. Example: "High".one of
NoneLowMediumHigh related_resource_idinteger- ID of the record the task is attached to. Set together with related_resource_type. Example: 2827698.
related_resource_typestring- Type of record the task is attached to: lead, person, company, opportunity or project. Set together with related_resource_id. Example: "opportunity".one of
leadpersoncompanyopportunityproject reminder_dateinteger- When to send a reminder about the task, as a Unix timestamp in seconds. Example: 1704067200.
statusstring- Task status: Open or Completed. Setting Completed also sets the completed date. Example: "Open".one of
OpenCompleted tagsarray- Tags to put on the task, as plain strings. On update this replaces the record's whole tag list. Example: ["enterprise", "q3"].
copper_activity_deletePermanently delete a user activity (note, call or meeting) from Copper.DestructiveDelete Activity
Permanently delete a user activity (note, call or meeting) from Copper. Returns the deleted activity's id and is_deleted: true. Use it to remove an activity logged by mistake. Get the ID from copper_activities_search.
- Idempotent
Inputs
activity_idintegerrequired- ID of the activity. Get it from copper_activities_search. Example: 68.
copper_company_deletePermanently delete a company from Copper.DestructiveDelete Company
Permanently delete a company from Copper. Returns the deleted company's id and is_deleted: true. Use it only when the organization should be removed for good. Get the ID from copper_companies_search.
- Idempotent
Inputs
company_idintegerrequired- ID of the company. Get it from copper_companies_search. Example: 1234567.
copper_connect_field_link_deleteRemove one connect-field link between two Copper records; neither record is deleted.DestructiveDelete Connect Field Link
Remove one connect-field link between two Copper records; neither record is deleted. Returns the deleted link ids and is_deleted: true. Use it to clear or change a connect field value. Get the link id from copper_connect_field_links_list.
- Idempotent
Inputs
link_idintegerrequired- ID of the connect field link. Get it from copper_connect_field_links_list. Example: 2101.
copper_file_deletePermanently delete a file attached to a Copper record.DestructiveDelete File
Permanently delete a file attached to a Copper record. Returns removed: true and the deleted file reference. Use it to remove an attachment for good. Get the file ID from copper_files_list.
- Idempotent
Inputs
entity_idintegerrequired- ID of the record. Example: 210110.
entity_typestringrequired- Type of the record the files are attached to: leads, people, opportunities, companies or projects. Example: "leads".one of
leadspeopleopportunitiescompaniesprojects file_idintegerrequired- ID of the file. Get it from copper_files_list. Example: 2556402.
copper_lead_deletePermanently delete a lead from Copper.DestructiveDelete Lead
Permanently delete a lead from Copper. Returns the deleted lead's id and is_deleted: true. Use it only to discard a lead for good. Use copper_lead_convert to turn a qualified lead into a person instead.
- Idempotent
Inputs
lead_idintegerrequired- ID of the lead. Get it from copper_leads_search. Example: 8900677.
copper_opportunity_deletePermanently delete an opportunity (deal) from Copper.DestructiveDelete Opportunity
Permanently delete an opportunity (deal) from Copper. Returns the deleted opportunity's id and is_deleted: true. Use it only to remove a deal for good. Use copper_opportunity_update with status Lost or Abandoned to close it instead.
- Idempotent
Inputs
opportunity_idintegerrequired- ID of the opportunity. Get it from copper_opportunities_search. Example: 2827698.
copper_person_deletePermanently delete a person (contact) from Copper.DestructiveDelete Person
Permanently delete a person (contact) from Copper. Returns the deleted person's id and is_deleted: true. Use it only when the contact should be removed for good. Get the ID from copper_people_search.
- Idempotent
Inputs
person_idintegerrequired- ID of the person. Get it from copper_people_search. Example: 27140359.
copper_project_deletePermanently delete a project from Copper.DestructiveDelete Project
Permanently delete a project from Copper. Returns the deleted project's id and is_deleted: true. Use it only to remove a project for good. Use copper_project_update with status Completed to close it instead.
- Idempotent
Inputs
project_idintegerrequired- ID of the project. Get it from copper_projects_search. Example: 144296.
copper_task_deletePermanently delete a task from Copper.DestructiveDelete Task
Permanently delete a task from Copper. Returns the deleted task's id and is_deleted: true. Use it only to remove a task for good. Use copper_task_update with status Completed to close it instead.
- Idempotent
Inputs
task_idintegerrequired- ID of the task. Get it from copper_tasks_search. Example: 3001.
No tools match.