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.