InTouch Hub · Blue Isle Software

Copper CRM

Sync people, companies, and opportunities in Copper CRM via its developer REST API.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

crm-salesemailsearchstatussync

Copper CRM

Sync people, companies, and opportunities in Copper CRM via its developer REST API. Search the three core record types and create new people — no SDK, standard-library Python only.

What it does

The tool branches on operation and calls the real Copper Developer API (https://api.copper.com/developer_api/v1). It returns the raw JSON response body as result and the HTTP status code as status. Non-2xx responses are returned (not thrown) so you can inspect Copper's error payload.

Operations

operation Copper endpoint Purpose
search_people POST /people/search List/search people (contacts)
search_companies POST /companies/search List/search companies
search_opportunities POST /opportunities/search List/search opportunities (deals)
create_person POST /people Create a new person

Search operations accept optional name (filter), sortBy, pageSize (1-200, default 20) and pageNumber (1-based, default 1).

apiKey setup

Copper authenticates every request with three headers, so this tool needs two credentials: your API key and the email of the user who generated it.

  1. In the Copper web app, go to System settings > API Keys.
  2. Click GENERATE API KEY and copy the key — this is your apiKey (sent as the X-PW-AccessToken header).
  3. Use the email address of the user who generated the key as userEmail (sent as the X-PW-UserEmail header).

The tool always sends X-PW-Application: developer_api and Content-Type: application/json for you.

Examples

Search the first page of people, sorted by name:

apiKey:    <your key>
userEmail: [email protected]
operation: search_people
sortBy:    name
pageSize:  25

Find companies whose name matches "Acme":

apiKey:    <your key>
userEmail: [email protected]
operation: search_companies
name:      Acme

List the most recently modified opportunities:

apiKey:    <your key>
userEmail: [email protected]
operation: search_opportunities
sortBy:    date_modified

Create a new person with a work email:

apiKey:    <your key>
userEmail: [email protected]
operation: create_person
name:      John Doe
email:     [email protected]

Output

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.

Input Properties

Every property this tool accepts, from its own tool.iml.

Property Type Required Default Description
apiKey string yes — Copper API key. Generate it in the Copper web app under System settings > API Keys > GENERATE API KEY (sent as the 'X-PW-AccessToken' header).
userEmail string yes — Email address of the user who generated the API key (sent as the 'X-PW-UserEmail' header). Required by Copper auth.
operation string yes — One of: search_people, search_companies, search_opportunities, create_person
name string no — For search_* this filters records whose name matches. For create_person this is the person's full name (required for create_person).
email string no — Email address attached to the new person on create_person (added as a work email). Ignored by search operations.
sortBy string no — Field to sort search results by (e.g. name, date_modified, date_created). Defaults to Copper's default sort when empty.
pageSize string no — Number of records per page for search operations (1-200). Defaults to 20 when empty.
pageNumber string no — 1-based page number for search operations. Defaults to 1 when empty.