Skip to main content

Copper

Copper is a CRM platform designed specifically for Google Workspace users, providing seamless integration with Gmail, Google Calendar, and Google Drive to streamline sales processes, manage customer relationships, and automate workflows within the Google ecosystem.

Copper icon

Power end-to-end data operations for your Copper API with Nexla. Our bi-directional Copper connector is purpose-built for Copper, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Copper or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Copper workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a Copper credential, you need to obtain an API key and the email address of the user who generated the API token from your Copper account. The API key and email are required to authenticate with the Copper API.

To obtain your API key, you need to have a Copper account with API access enabled. Once you have access to your account, you can generate an API key from your Copper Account under System settings > API Keys. The email address should be the email ID of the user who generated the API token. Copper uses custom headers for authentication: X-PW-AccessToken (API key), X-PW-Application (set to developer_api), and X-PW-UserEmail (email of token generator). These headers are sent with all API requests to the Copper API. For detailed information about API key setup and authentication, refer to the Copper API documentation.

Authenticate

Credentials required

FieldRequiredSecretDescription
API KeyYesYesYour Copper API Key. You can find it in your Copper Account under System settings > API Keys
Email of Token GeneratorYesYesEmail ID of user who generated the API token.

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

New Credential Overlay – Copper

CopperCred.png
  1. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  2. Enter your Copper API key in the API Key field. This is the API key you obtained from your Copper Account under System settings > API Keys. The API key is sent in the X-PW-AccessToken header for all API requests to the Copper API.

    Keep your API key secure and do not share it publicly. The API key provides access to your Copper account and should be treated as sensitive information. For detailed information about obtaining and managing API keys, see the Copper API documentation.

  3. Enter the email address of the user who generated the API token in the Email of Token Generator field. This is the email ID of the user who generated the API token. The email is sent in the X-PW-UserEmail header for all API requests to the Copper API.

    The email address must match the email of the user who generated the API token. Copper also requires the X-PW-Application header to be set to developer_api, which is automatically configured by Nexla. For detailed information about authentication requirements, see the Copper API documentation.

  4. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Copper connector tile, then select the credential that will be used to connect to the Copper instance, and click Next; or, create a new Copper credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Copper endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

Get All Records of a Type

This endpoint gets a list of all records of a specific type. Use this endpoint when you need to access all records of a specific type (leads, companies, people, opportunities, etc.) from your Copper account. Use the Filters Records endpoint if you want to fetch a filtered list of items.

  • Select the resource type you want to retrieve from the Resource Type dropdown menu. Available options are:

    • Activities: For fetching activities
    • Companies: For fetching companies
    • Leads: For fetching leads (default)
    • Opportunities: For fetching opportunities
    • People: For fetching people
    • Projects: For fetching projects
    • Tasks: For fetching tasks
    • Users: For fetching users

    The default value is leads if not specified.

  • The endpoint uses POST requests to https://api.prosperworks.com/developer_api/v1/{'{record_type}'}/search where {record_type} is the resource type you select. The endpoint URL is automatically constructed based on the Copper API base URL and the resource type.
  • The endpoint uses incrementing pagination, automatically fetching additional pages as needed. Pagination starts from page 1 and increments by 1 for each subsequent page. The page size is set to 200 records per page, and Nexla will continue fetching pages until all records are retrieved.
  • The endpoint will return all records of the specified type. The response data is extracted from the root-level array in the API response ($[*]), with each record processed individually.

Resource types should match the Copper API specification. The endpoint uses incrementing pagination (iteration.type: paging.incrementing) with a page size of 200 records per page. The response data path is $[*], which extracts all items from the root-level array in the API response. For detailed information about listing records, see the Copper API documentation.

Get Filtered Records of a Type

This endpoint gets a filtered list of all records of a specific type. Filter query cannot be empty and must be a JSON object of allowed filter criteria. Use this endpoint when you need to fetch a filtered list of items based on specific criteria from your Copper account.

  • Select the resource type you want to retrieve from the Resource Type dropdown menu. Available options are:

    • Activities: For fetching activities
    • Companies: For fetching companies
    • Leads: For fetching leads (default)
    • Opportunities: For fetching opportunities
    • People: For fetching people
    • Projects: For fetching projects
    • Tasks: For fetching tasks
    • Users: For fetching users

    The default value is leads if not specified.

  • Enter the filter criteria as a valid JSON object in the Filter Criteria (JSON Object) field. The filter query cannot be empty and must be a JSON object of allowed filter criteria. Check the API documentation for the object to see available criteria. The default value is {} (empty JSON object) if not specified.

  • The endpoint uses POST requests to https://api.prosperworks.com/developer_api/v1/{'{record_type}'}/search where {record_type} is the resource type you select. The filter criteria is sent as the request body in JSON format. The endpoint URL is automatically constructed based on the Copper API base URL and the resource type.
  • The endpoint uses incrementing pagination, automatically fetching additional pages as needed. Pagination starts from page 1 and increments by 1 for each subsequent page. The page size is set to 200 records per page, and Nexla will continue fetching pages until all records are retrieved.
  • The endpoint will return all records of the specified type that match the filter criteria. The response data is extracted from the root-level array in the API response ($[*]), with each record processed individually.

Filter criteria must be a valid JSON object with allowed filter criteria for the selected resource type. The filter query cannot be empty. The endpoint uses incrementing pagination (iteration.type: paging.incrementing) with a page size of 200 records per page. The response data path is $[*], which extracts all items from the root-level array in the API response. For detailed information about filtering records and available filter criteria, see the Copper API documentation.

Get Record By Id

This endpoint gets a specific record by its ID. Use this endpoint when you need to access a specific record (lead, company, person, opportunity, etc.) from your Copper account using its unique identifier.

  • Select the resource type you want to retrieve from the Resource Type dropdown menu. Available options are:

    • Activities: For fetching activities
    • Companies: For fetching companies
    • Leads: For fetching leads (default)
    • Opportunities: For fetching opportunities
    • People: For fetching people
    • Projects: For fetching projects
    • Tasks: For fetching tasks
    • Users: For fetching users

    The default value is leads if not specified.

  • Enter the record ID you want to retrieve in the Record ID field. This is the unique identifier of the specific record you want to fetch.

  • The endpoint uses GET requests to https://api.prosperworks.com/developer_api/v1/{'{record_type}'}/{'{record_id}'} where {record_type} is the resource type you select and {record_id} is the record ID you provide. The endpoint URL is automatically constructed based on the Copper API base URL, the resource type, and the record ID.
  • The endpoint does not use pagination and returns the complete record in a single request.
  • The endpoint will return the specific record matching the provided ID. The response data is extracted from the root-level object in the API response ($), and Nexla will process the entire response structure.

Record IDs can be obtained from other Copper API endpoints, such as the "Get All Records of a Type" or "Get Filtered Records of a Type" endpoints, which return all records with their corresponding IDs. The endpoint uses a static URL (iteration.type: static.url) and does not require pagination. The response data path is $, which extracts the entire root-level object from the API response. Check the API documentation URL for details on the response structure. For detailed information about fetching a record by ID, see the Copper API documentation.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Copper data sources can also be manually configured to ingest data from any valid Copper API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Copper API endpoints typically follow the pattern https://api.prosperworks.com/developer_api/v1/{'{endpoint_path}'}. The endpoint requires custom headers for authentication (X-PW-AccessToken, X-PW-Application, X-PW-UserEmail), which are handled automatically by your credential configuration. For the response data path, use $[*] to extract items from a root-level array, or $ to extract the entire root-level object, depending on the endpoint. For detailed information about Copper API endpoints, see the Copper API documentation.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Copper data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Copper destination, and select the Send to Destination option from the menu. Select the Copper connector from the list of available destination connectors, then select the credential that will be used to connect to the Copper organization, and click Next; or, create a new Copper credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Copper endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Add Records of Type

This endpoint adds records of a specific type. Use this endpoint when you need to create new records (leads, companies, people, opportunities, etc.) in your Copper account from your data sources.

  • Select the resource type you want to create from the Resource Type dropdown menu. Available options are:

    • Activities: For creating activities
    • Companies: For creating companies
    • Leads: For creating leads (default)
    • Opportunities: For creating opportunities
    • People: For creating people
    • Projects: For creating projects
    • Tasks: For creating tasks
    • Users: For creating users

    The default value is leads if not specified.

  • The endpoint uses POST requests to https://api.prosperworks.com/developer_api/v1/{'{record_type}'} where {record_type} is the resource type you select. The endpoint URL is automatically constructed based on the Copper API base URL and the resource type.
  • The endpoint sends data from your Nexset as the request body in JSON format. Each record in your Nexset will be sent as a JSON object containing the record data to create. The request body should follow the Copper API specification for creating records, including required fields and field names.
  • Batch mode is disabled by default for this endpoint. Each record in your Nexset will be sent as a separate API request to create a record. If you need to create multiple records, you can send multiple records, but each will be processed as a separate request.

Resource types should match the Copper API specification. The request body must be properly formatted JSON that matches the Copper API specification for creating records. Check the documentation URL for more details on the record schema, including required fields, field names, and request formats. The endpoint requires custom headers for authentication (X-PW-AccessToken, X-PW-Application, X-PW-UserEmail), which are handled automatically by your credential configuration. The Content-Type: application/json header is automatically included in requests. Batch mode is disabled by default (batch.mode: false), so each record will be sent as a separate request. For detailed information about creating records, see the Copper API documentation.

Manual configuration

Copper destinations can also be manually configured to send data to any valid Copper API endpoint, including endpoints not covered by the pre-built templates or when custom API configurations are needed. Using manual configuration, you can also configure Nexla to automatically send the response received from the Copper API after each call to a new Nexla webhook data source. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

The Copper API primarily uses POST requests for data-writing operations and typically expects JSON request bodies. Copper API endpoints follow the pattern https://api.prosperworks.com/developer_api/v1/{'{endpoint_path}'}. The endpoint requires custom headers for authentication (X-PW-AccessToken, X-PW-Application, X-PW-UserEmail), which are handled automatically by your credential configuration — you do not need to include these manually. The Content-Type: application/json header is also set automatically. For detailed information about Copper API endpoints, see the Copper API documentation.

Save & activate

Once all configuration steps have been completed, click the Save button to save your destination configuration. To send data to the configured Copper endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Copper endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.