Pipory
Node reference

Copper

Copper node reference - all 72 operations, the credential it needs, and a worked example.

Copper CRM Developer API (Commerce/CRM). 72 operations: people, leads (including upsert and lead conversion), companies, opportunities and their pipelines, stages and loss reasons; projects, tasks and activity logging; per-record activity feeds; related items and connect-field connections; custom field definitions, activity types and tags; attached-file reads; account and user lookups; and webhook subscription management.

Credential: Copper credential - see Credentials.

Permissions

Copper has no per-operation scope system. Its OAuth2 flow publishes exactly ONE scope, developer/v1/all - Copper's own table describes it as "Read and modify user records" and adds "more granular scopes will be added in the future" - and states it is backward compatible with the legacy API Key authentication that Pipory's credential uses. An API key simply inherits the role and permissions of the Copper user who generated it, so every operation below either works or the whole credential does not, and a 401 or 403 is never a missing checkbox. Two things it usually IS: the key is wrong or revoked (regenerate it under Copper Settings > Integrations > API Keys), or the email stored alongside it is not the address of the user who generated that key - Copper sends both on every request as X-PW-AccessToken and X-PW-UserEmail and checks them together. Limit the blast radius by generating the key under a Copper user with a restricted role rather than an administrator.

Operations (72)

People

OperationWhat it does
createPersonCreate person
updatePersonUpdate person
getPersonGet person
fetchPersonByEmailFind person by email
searchPeopleSearch people
deletePersonDelete person
listPersonActivitiesList a person's activities
listContactTypesList contact types

Leads

OperationWhat it does
createLeadCreate lead
updateLeadUpdate lead
getLeadGet lead
upsertLeadUpsert lead (match or create)
convertLeadConvert lead to person / company / opportunity
searchLeadsSearch leads
deleteLeadDelete lead
listLeadActivitiesList a lead's activities
listCustomerSourcesList customer sources
listLeadStatusesList lead statuses

Companies

OperationWhat it does
createCompanyCreate company
updateCompanyUpdate company
getCompanyGet company
searchCompaniesSearch companies
deleteCompanyDelete company
listCompanyActivitiesList a company's activities

Opportunities

OperationWhat it does
createOpportunityCreate opportunity
updateOpportunityUpdate / move opportunity
getOpportunityGet opportunity
searchOpportunitiesSearch opportunities
deleteOpportunityDelete opportunity
listPipelinesList pipelines
listPipelineStagesList all pipeline stages
listStagesInPipelineList stages in one pipeline
listLossReasonsList loss reasons

Projects

OperationWhat it does
createProjectCreate project
updateProjectUpdate project
getProjectGet project
searchProjectsSearch projects
deleteProjectDelete project

Tasks

OperationWhat it does
createTaskCreate task
updateTaskUpdate / complete task
getTaskGet task
searchTasksSearch tasks
deleteTaskDelete task

Activities

OperationWhat it does
createActivityLog activity (note / call / meeting)
updateActivityUpdate activity
getActivityGet activity
searchActivitiesSearch activities
deleteActivityDelete activity
listActivityTypesList activity types
OperationWhat it does
listRelatedList everything related to a record
listRelatedOfTypeList related records of one type
relateRecordRelate a record
unrelateRecordRemove a relationship

Connect fields

OperationWhat it does
listConnectionsList connect-field connections
createConnectionCreate a connection
deleteConnectionDelete a connection

Custom fields & tags

OperationWhat it does
listCustomFieldDefinitionsList custom field definitions
getCustomFieldDefinitionGet a custom field definition
listCustomActivityTypesList custom activity types
getCustomActivityTypeGet a custom activity type
listTagsList all tags

Files

OperationWhat it does
listFilesList files attached to a record
getFileMetadataGet attached file metadata

Account & users

OperationWhat it does
getAccountGet account details
getApiUserGet the API user (whoami)
getUserGet user by ID
searchUsersSearch users

Webhook subscriptions

OperationWhat it does
listWebhooksList webhook subscriptions
getWebhookGet webhook subscription
createWebhookCreate webhook subscription
updateWebhookUpdate webhook subscription
deleteWebhookDelete webhook subscription

Example

Find a person by email — with a POST, not a GET

Copper breaks REST convention in a way that trips up anything written from assumption: listing and searching are POST /{resource}/search with the filters in a JSON body, and the per-record lookups post a body too. Every mistake found in an earlier inventory of this API made it tidier than it is; this is one of the places it is not.

Set Operation to fetchPersonByEmail, then fill in:

FieldValueNotes
email{{ myTrigger.email }}Posted in a JSON body — this is not a GET with a query string

Sets {{person.id}} and {{person.person}}. Copper allows 180 requests/minute and sends no Retry-After header, so the node surfaces that number in its 429 message.