Skip to main content

Copper integration

Sync contacts, qualify leads, and move opportunities through your clients' Copper pipelines.

What it does

The Copper integration lets you run CRM automations on behalf of any client whose Copper account you manage. Connect a Copper account once, then create and read every core record type, react to changes the moment Copper reports them, manage custom fields and connect fields, and keep files and relationships in sync — without writing any code.

Connect a Copper account

  1. In TaskJuice, add the connection from the Copper node in your workflow.
  2. In Copper, sign in as the user TaskJuice should act on behalf of, then open System settings -> API Keys.
  3. Choose Generate API Key, copy the key, and paste it into the API Key field in TaskJuice.
  4. Enter the email address of the Copper user that owns the key in the Account Email field. Copper requires this on every request alongside the access token.

The connection is read- and write-capable across every entity scoped to that user's permissions in Copper. Rotate or revoke the API key from the same System settings -> API Keys page at any time.

Triggers

Copper delivers webhook notifications carrying record IDs only. Pair each webhook trigger with the matching Search action to fetch the full records — the search actions accept an ids filter so one call enriches the whole batch.

Record created

  • copper/new-person. Polls Copper for newly created people and emits one activation per cycle wrapping every observed person in an items array. Add a Loop node downstream to process each contact individually.
  • copper/new-lead. A lead was created.
  • copper/new-company. A company was created.
  • copper/new-opportunity. An opportunity was created.
  • copper/new-project. A project was created.
  • copper/new-task. A task was created.
  • copper/new-activity. An activity was logged.

Record updated

  • copper/updated-person, copper/updated-lead, copper/updated-company, copper/updated-opportunity, copper/updated-project, copper/updated-task, copper/updated-activity. Each carries an updated_attributes map of changed field to a [previous, new] pair.

To trigger on a specific field change — an opportunity stage, a lead status, a contact type — use the matching Updated trigger and add a Filter node on the relevant updated_attributes key.

Record deleted

  • copper/deleted-person, copper/deleted-lead, copper/deleted-company, copper/deleted-opportunity, copper/deleted-project, copper/deleted-task, copper/deleted-activity. Deleted records cannot be fetched back; the notification's IDs are the only record of what was removed.

Actions

Create

  • copper/create-person, copper/create-lead, copper/create-company, copper/create-opportunity, copper/create-project, copper/create-task, copper/create-activity. Create a single record of each type.
  • copper/bulk-create-leads, copper/bulk-create-opportunities, copper/bulk-create-activities. Create up to 10 records in one request.
  • copper/convert-lead. Convert a lead into a person, company and opportunity.

Read

  • copper/get-person, copper/get-lead, copper/get-company, copper/get-opportunity, copper/get-project, copper/get-task, copper/get-activity. Fetch one record by ID.
  • copper/search-people, copper/search-leads, copper/search-companies, copper/search-opportunities, copper/search-projects, copper/search-tasks, copper/search-activities. Filtered search, including an ids filter for webhook fetch-back.
  • copper/get-account. Account name, timezone and feature settings.
  • copper/get-user, copper/get-api-user, copper/list-users. Look up users; get-api-user resolves the key owner and doubles as a connection health check.
  • copper/list-pipelines, copper/list-customer-sources, copper/list-tags, copper/list-field-layout. Reference data for pickers and validation.

Update and delete

  • copper/update-person, copper/update-lead, copper/update-company, copper/update-opportunity, copper/update-project, copper/update-task, copper/update-activity. Partial updates — only the fields you supply change.
  • copper/delete-person, copper/delete-lead, copper/delete-company, copper/delete-opportunity, copper/delete-project, copper/delete-task, copper/delete-activity. Permanent.

Relationships and connect fields

  • copper/relate-records, copper/list-related-records, copper/remove-relationship. Attach, list and detach related records.
  • copper/create-connection, copper/list-connections, copper/delete-connection. Manage connect-field links between records.

Custom fields and activity types

  • copper/list-custom-field-definitions, copper/get-custom-field-definition, copper/create-custom-field-definition, copper/update-custom-field-definition, copper/delete-custom-field-definition.
  • copper/list-custom-activity-types, copper/get-custom-activity-type, copper/create-custom-activity-type, copper/update-custom-activity-type.

Files

  • copper/list-files, copper/get-file-metadata, copper/delete-file. Read and remove attachments on a record.

Known limitations

  • Webhook subscriptions are registered by hand. Copper creates one subscription per entity-and-event pair through its API and ships no webhook console. TaskJuice cannot auto-provision these yet, so a Copper webhook trigger needs its subscription created against Copper's API using the delivery URL shown on the trigger panel.
  • Copper does not retry webhook deliveries. Each notification is sent at most once. For workflows where a missed record is unacceptable, pair the webhook trigger with a periodic Search as a backstop.
  • Notifications carry IDs, not records. One notification carries 1 to 30 record IDs; larger changes arrive as several notifications. Use the matching Search action's ids filter to fetch the records.
  • Uploading files is not supported. Copper's upload flow requires a multipart transfer to Amazon S3, which the integration does not cover. Listing, reading metadata for, and deleting existing attachments all work.
  • Bulk endpoints cap at 10 records per request and 3 requests per second. A larger batch returns 422; exceeding the rate returns 429.
  • Copper applies a per-account rate limit documented at developer.copper.com. TaskJuice retries on 429 responses.
  • API key authentication is scoped to the Copper user whose key was copied. Switching users requires rotating the connection's API key and updating the account email.
  • Date fields on opportunities use Copper's documented MM/DD/YYYY string format; tasks and activities use Unix epoch seconds. Mismatches surface as 422 responses.
Was this helpful?