Copper
Create people, track opportunities, and manage relationships in Copper CRM.
On this page
- Connect
- Call it from a workflow
- Actions (20)
- createOpportunity
- createPerson
- convertLead
- createActivity
- createCompany
- createLead
- createProject
- createTask
- custom_api_call
- searchForACompany
- searchForALead
- searchForAnActivity
- searchForAnOpportunity
- searchForAPerson
- searchForAProject
- updateCompany
- updateLead
- updateOpportunity
- updatePerson
- updateProject
- Details
Connect
Auth type: API key (secret_text). Paste the API key (or token) from the provider's settings into the connect dialog. It is encrypted at rest and only decrypted on the server when an action runs.
- In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
- For every project in a workspace: Workspace settings, Integrations.
- Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.
Call it from a workflow
Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.
// .workflow.js (native ctx)
export async function run(ctx) {
const res = await ctx.integrations.invoke("copper", "createOpportunity", {
"name": "<name>"
});
if (!res.success) throw new Error(res.error);
ctx.log.info("Copper answered", { output: res.output });
}// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";
export default defineWorkflow({
id: "copper-createopportunity",
name: "Copper: Create Opportunity",
description: "Calls Copper when a row is created.",
trigger: { type: "entity_event", entity: "tickets", event: "created" },
async run(ctx, event) {
const res = await ctx.integrations.call("copper", {
"action": "createOpportunity",
"name": "<name>"
}) as { success: boolean; error?: string };
if (!res.success) throw new Error(res.error);
},
});curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/copper/createOpportunity" \
-H "Authorization: Bearer $APP_KEY" \
-H "content-type: application/json" \
-d '{"props":{"name":"<name>"}}'Actions
createOpportunityin catalog
Create Opportunity. Adds a new opportunity.
Also accepted as create_opportunity.
| Input | Type | Description |
|---|---|---|
namerequired | text | The name of the opportunity |
pipelineIdoptional | id (picked from your account) | select a Pipeline |
pipelineStageIdoptional | id (picked from your account) | Select a stage |
primaryContactIdoptional | id (picked from your account) | select a primary contact |
createPersonin catalog
Create Person. Adds a new person/contact.
Also accepted as create_person.
| Input | Type | Description |
|---|---|---|
namerequired | text | Full Name |
emailsrequired | array | Emails |
phone_numbersoptional | array | Phone Numbers |
address_streetoptional | text | Street |
address_cityoptional | text | City |
address_stateoptional | text | State/Region |
address_postal_codeoptional | text | Postal Code |
address_countryoptional | text | Country |
convertLead
Convert Lead. Converts a lead into a person (optionally with company/opportunity).
| Input | Type | Description |
|---|---|---|
leadIdrequired | id (picked from your account) | select a Lead |
companyIdoptional | id (picked from your account) | select a Company |
opportunityIdoptional | id (picked from your account) | select an Opportunity |
createActivity
Create Activity. Logs an activity related to CRM entities.
| Input | Type | Description |
|---|---|---|
entityrequired | one of "person" | "company" | "lead" | "opportunity" | "project" | "task" | Select parent entity |
entityItemIdrequired | id (picked from your account) | Select Resource |
detailsoptional | text | The details of the project |
typerequired | id (picked from your account) | Select activity Type |
createCompany
Create Company. Adds a new company.
| Input | Type | Description |
|---|---|---|
namerequired | text | Full Name |
email_domainoptional | text | E.g. democompany.com |
detailsoptional | text | Details |
phone_numbersoptional | array | Phone Numbers |
address_streetoptional | text | Street |
address_cityoptional | text | City |
address_stateoptional | text | State/Region |
address_postal_codeoptional | text | Postal Code |
address_countryoptional | text | Country |
primaryContactIdoptional | id (picked from your account) | select a primary contact |
createLead
Create Lead. Adds a new lead.
| Input | Type | Description |
|---|---|---|
namerequired | text | Full Name |
emailrequired | text | |
categoryrequired | text | Category of the email address (e.g., work, personal) |
phone_numbersoptional | array | Phone Numbers |
address_streetoptional | text | Street |
address_cityoptional | text | City |
address_stateoptional | text | State/Region |
address_postal_codeoptional | text | Postal Code |
address_countryoptional | text | Country |
createProject
Create Project. Adds a new project.
| Input | Type | Description |
|---|---|---|
namerequired | text | The name of the project |
detailsoptional | text | The details of the project |
createTask
Create Task. Adds a new task under a person, lead, or opportunity.
| Input | Type | Description |
|---|---|---|
namerequired | text | Task Name |
detailsoptional | text | Details fo this task |
custom_activity_type_idrequired | id (picked from your account) | Select activity Type |
assigneeIdoptional | id (picked from your account) | select a user to assign to |
entityoptional | one of "person" | "company" | "lead" | "opportunity" | "project" | Choose the type of Copper record this task should be linked to (e.g. Person, Company, Lead, Opportunity, or Project). |
entityItemIdoptional | id (picked from your account) | Select the specific record (from the chosen type above) that this task should be attached to. For example, pick the Person or Opportunity the task relates to. |
due_dateoptional | date-time (ISO) | Enter date and time in 24-hour format, e.g. `2025-09-09 11:40` (11:40 AM) or `2025-09-09 13:00` (1:00 PM). |
reminder_dateoptional | date-time (ISO) | Enter date and time in 24-hour format, e.g. `2025-09-09 11:40` (11:40 AM) or `2025-09-09 13:00` (1:00 PM) |
priorityoptional | one of "None" | "Low" | "Medium" | "High" | Priority |
tagsoptional | array | Tags |
custom_api_call
Custom API Call. Make a custom API call to a specific endpoint
| Input | Type | Description |
|---|---|---|
urlrequired | object (depends on other props) | url |
methodrequired | one of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD" | Method |
headersrequired | object | Authorization headers are injected automatically from your connection. |
queryParamsrequired | object | Query Parameters |
body_typeoptional | one of "none" | "json" | "form_data" | "raw" | Body Type |
bodyoptional | object (depends on other props) | Body |
response_is_binaryoptional | boolean | Enable for files like PDFs, images, etc. |
failsafeoptional | boolean | No Error on Failure |
timeoutoptional | number | Timeout (in seconds) |
followRedirectsoptional | boolean | Follow redirects |
searchForACompany
Search for a Company. Lookup a company.
| Input | Type | Description |
|---|---|---|
nameoptional | text | Full name of the Company to search for. |
phone_numberoptional | text | Phone Number of the Company to search for. |
email_domainsoptional | text | Email Domain of the Company to search for. |
contact_type_idsoptional | ids (picked from your account) | Select contact Type |
assignee_idsoptional | ids (picked from your account) | select assignees |
cityoptional | text | The city in which Company must be located. |
stateoptional | text | The state or province in which Company must be located. |
postal_codeoptional | text | The postal code in which Company must be located. |
countryoptional | text | The two character country code where Company must be located. |
tagsoptional | array | Filter Company to those that match at least one of the tags specified. |
socialsoptional | array | Filter Company to those that match at least one of the social accounts specified. |
followedoptional | one of "1" | "2" | Filter by followed state |
ageoptional | number | The maximum age in seconds that Company must be. |
page_sizeoptional | number | Default 50. Max 200. |
page_numberoptional | number | Page Number |
sort_byoptional | one of "name" | "phone" | "contact" | "contact_first_name" | "contact_last_name" | "date_modified" | "date_created" | "email_domain" | "city" | "state" | "country" | "zip" | The field on which to sort the results |
sort_directionoptional | one of "asc" | "desc" | The direction in which to sort the result |
minimum_interaction_countoptional | number | The minimum number of interactions Company must have had. |
maximum_interaction_countoptional | number | The maximum number of interactions Company must have had. |
minimum_interaction_dateoptional | date-time (ISO) | 24-hour format, e.g. 2025-09-10 13:00. The timestamp of the earliest date of the last interaction. |
searchForALead
Search for a Lead. Lookup a lead using match criteria.
| Input | Type | Description |
|---|---|---|
nameoptional | text | Full name of the Lead to search for. |
phone_numberoptional | text | Phone Number of the Lead to search for. |
emailsoptional | text | Emails of the Lead to search for. |
assignee_idsoptional | ids (picked from your account) | select assignees |
status_idsoptional | ids (picked from your account) | Select lead status |
customer_source_idsoptional | ids (picked from your account) | Select customer source. |
cityoptional | text | The city in which Lead must be located. |
stateoptional | text | The state or province in which Lead must be located. |
postal_codeoptional | text | The postal code in which Lead must be located. |
countryoptional | text | The two character country code where Lead must be located. |
tagsoptional | array | Filter Lead to those that match at least one of the tags specified. |
socialsoptional | array | Filter Lead to those that match at least one of the social accounts specified. |
followedoptional | one of "1" | "2" | Filter by followed state |
ageoptional | number | The maximum age in seconds that Lead must be. |
page_sizeoptional | number | Default 50. Max 200. |
page_numberoptional | number | Page Number |
sort_byoptional | one of "name" | "company_name" | "title" | "value" | "email" | "phone" | "date_modified" | "date_created" | "city" | "state" | "country" | "zip" | The field on which to sort the results |
sort_directionoptional | one of "asc" | "desc" | The direction in which to sort the result |
include_converted_leadsoptional | boolean | Specify if response should contain converted leads. |
minimum_monetary_valueoptional | number | The minimum monetary value Leads must have. |
searchForAnActivity
Search for an Activity. Find an existing activity by type/criteria.
| Input | Type | Description |
|---|---|---|
entityoptional | one of "person" | "company" | "lead" | "opportunity" | "project" | "task" | Select parent entity |
entityItemIdoptional | id (picked from your account) | Select Resource |
activity_typesoptional | ids (picked from your account) | Select activity Type |
page_sizeoptional | number | Default 50. Max 200. |
page_numberoptional | number | Page Number |
minimum_activity_dateoptional | date-time (ISO) | 24-hour format, e.g. 2025-09-10 11:40. The timestamp of the earliest activity date. |
maximum_activity_dateoptional | date-time (ISO) | 24-hour format, e.g. 2025-09-10 13:00. The timestamp of the latest activity date. |
full_resultoptional | boolean | (Optional) If set, search performance improves but duplicate activity logs may be returned |
searchForAnOpportunity
Search for an Opportunity. Lookup an opportunity.
| Input | Type | Description |
|---|---|---|
nameoptional | text | Full name of the Opportunity to search for. |
assignee_idsoptional | ids (picked from your account) | select assignees |
company_idsoptional | ids (picked from your account) | select Companies |
status_idsoptional | list of | Filter by Opportunity status |
prioritiesoptional | list of | Priority |
pipeline_idsoptional | ids (picked from your account) | select a Pipeline |
pipeline_stage_idsoptional | ids (picked from your account) | Select a stage |
primary_contact_idsoptional | ids (picked from your account) | select primary contacts |
customer_source_idsoptional | ids (picked from your account) | Select customer source. |
loss_reason_idsoptional | ids (picked from your account) | Select loss reason. |
tagsoptional | array | Filter People to those that match at least one of the tags specified. |
followedoptional | one of "1" | "2" | Filter by followed state |
page_sizeoptional | number | Default 50. Max 200. |
page_numberoptional | number | Page Number |
sort_byoptional | one of "assignee" | "company_name" | "customer_source_id" | "date_created" | "date_modified" | "inactive_days" | "interaction_count" | "last_interaction" | "monetary_unit" | "monetary_value" | "name" | "primary_contact" | The field on which to sort the results |
sort_directionoptional | one of "asc" | "desc" | The direction in which to sort the result |
minimum_monetary_valueoptional | number | The minimum monetary value Opportunities must have. |
maximum_monetary_valueoptional | number | The maximum monetary value Opportunities must have. |
minimum_interaction_countoptional | number | The minimum number of interactions Opportunity must have had. |
maximum_interaction_countoptional | number | The maximum number of interactions Opportunity must have had. |
searchForAPerson
Search for a Person. Lookup a person using match criteria.
| Input | Type | Description |
|---|---|---|
nameoptional | text | Full name of the People to search for. |
phone_numberoptional | text | Phone Number of the People to search for. |
emailsoptional | array | Emails of the People to search for. |
contact_type_idsoptional | ids (picked from your account) | Select contact Type |
assignee_idsoptional | ids (picked from your account) | select assignees |
company_idsoptional | ids (picked from your account) | select Companies |
opportunity_idsoptional | ids (picked from your account) | select Opportunities |
cityoptional | text | The city in which People must be located. |
stateoptional | text | The state or province in which People must be located. |
postal_codeoptional | text | The postal code in which People must be located. |
countryoptional | text | The two character country code where People must be located. |
tagsoptional | array | Filter People to those that match at least one of the tags specified. |
socialsoptional | array | Filter People to those that match at least one of the social accounts specified. |
followedoptional | one of "1" | "2" | Filter by followed state |
ageoptional | number | The maximum age in seconds that People must be. |
page_sizeoptional | number | Default 50. Max 200. |
page_numberoptional | number | Page Number |
sort_byoptional | one of "name" | "title" | "email" | "phone" | "date_modified" | "date_created" | "city" | "state" | "country" | "zip" | "socials" | The field on which to sort the results |
sort_directionoptional | one of "asc" | "desc" | The direction in which to sort the result |
minimum_interaction_countoptional | number | The minimum number of interactions People must have had. |
searchForAProject
Search for a Project. Lookup a project.
| Input | Type | Description |
|---|---|---|
nameoptional | text | Full name of the Opportunity to search for. |
assignee_idsoptional | ids (picked from your account) | select assignees |
statusesoptional | list of | Filter by Opportunity status |
tagsoptional | array | Filter People to those that match at least one of the tags specified. |
followedoptional | one of "1" | "2" | Filter by followed state |
page_sizeoptional | number | Default 50. Max 200. |
page_numberoptional | number | Page Number |
sort_byoptional | one of "name" | "assigned_to" | "related_to" | "status" | "date_modified" | "date_created" | The field on which to sort the results |
sort_directionoptional | one of "asc" | "desc" | The direction in which to sort the result |
minimum_created_dateoptional | date-time (ISO) | 24-hour format, e.g. 2025-09-10 13:00. The timestamp of the earliest date Opportunity are created. |
maximum_created_dateoptional | date-time (ISO) | 24-hour format, e.g. 2025-09-10 13:00. The timestamp of the latest date Opportunity are Created. |
minimum_modified_dateoptional | date-time (ISO) | 24-hour format, e.g. 2025-09-10 13:00. The timestamp of the earliest date Opportunity are Modified. |
maximum_modified_dateoptional | date-time (ISO) | 24-hour format, e.g. 2025-09-10 13:00. The timestamp of the latest date Opportunity are Modified. |
updateCompany
Update Company. Updates a company record.
| Input | Type | Description |
|---|---|---|
companyIdrequired | id (picked from your account) | select a Company |
fieldsoptional | object (depends on other props) | fields |
primaryContactIdoptional | id (picked from your account) | select a primary contact |
updateLead
Update Lead. Updates an existing lead.
| Input | Type | Description |
|---|---|---|
leadIdrequired | id (picked from your account) | select a Lead |
fieldsoptional | object (depends on other props) | fields |
updateOpportunity
Update Opportunity. Updates an opportunity using match criteria.
| Input | Type | Description |
|---|---|---|
opportunityIdrequired | id (picked from your account) | select an Opportunity |
updateFieldsoptional | object (depends on other props) | updateFields |
pipelineIdoptional | id (picked from your account) | select a Pipeline |
pipelineStageIdoptional | id (picked from your account) | Select a stage |
primaryContactIdoptional | id (picked from your account) | select a primary contact |
updatePerson
Update Person. Updates a person based on matching criteria.
| Input | Type | Description |
|---|---|---|
personIdrequired | id (picked from your account) | select a person |
fieldsoptional | object (depends on other props) | fields |
updateProject
Update Project. Updates a project record.
| Input | Type | Description |
|---|---|---|
projectIdrequired | id (picked from your account) | select a Project |
updateFieldsoptional | object (depends on other props) | updateFields |
Details
- Id
copper- Category
- CRM and sales
- Tags
- crm, sales, google-workspace, relationships
- Package
@activepieces/piece-copper@0.1.4- Tier
- Community