Skip to main content

Data Source

Follow the instructions below to create a new data flow that ingests data from a Copper source in Nexla.
copper_api.png

Copper

Create a New Data Flow

  1. To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Then, select the desired flow type from the list, and click the Create button.

  2. Select the Copper connector tile from the list of available connectors. 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.

  3. In Nexla, Copper data sources can be created using pre-built endpoint templates, which expedite source setup for common Copper endpoints. Each template is designed specifically for the corresponding Copper endpoint, making source configuration easy and efficient.
    • To configure this source using a template, follow the instructions in Configure Using a Template.

    Copper sources can also be configured manually, allowing you to ingest data from Copper endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this source manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Copper endpoints. Each template is designed specifically for the corresponding Copper endpoint, making data source setup easy and efficient.

Endpoint Settings

  • 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. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

    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.

Endpoint Testing

Once the selected endpoint template has been configured, Nexla can retrieve a sample of the data that will be fetched according to the current settings. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Configure Manually

Copper data sources can be manually configured to ingest data from any valid Copper API endpoint. Manual configuration provides maximum flexibility for accessing endpoints not covered by pre-built templates or when you need custom API configurations.

With manual configuration, you can also create more complex Copper sources, such as sources that use chained API calls to fetch data from multiple endpoints or sources that require custom authentication headers or request parameters.

API Method

  1. To manually configure this source, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Copper API from the Method pulldown menu. The most common methods are:

    • GET: For retrieving data from the API
    • POST: For sending data to the API or triggering actions (e.g., search endpoints)
    • PUT: For updating existing data
    • PATCH: For partial updates to existing data
    • DELETE: For removing data

API Endpoint URL

  1. Enter the URL of the Copper API endpoint from which this source will fetch data in the Set API URL field. This should be the complete URL including the protocol (https://) and any required path parameters. Copper API endpoints typically follow the pattern https://api.prosperworks.com/developer_api/v1/{'{endpoint_path}'}.

Ensure the API endpoint URL is correct and accessible with your current credentials. You can test the endpoint using the Test button after configuring the URL. 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 detailed information about Copper API endpoints and available APIs, see the Copper API documentation.

Path to Data

  1. Enter the JSON path that identifies the location of the relevant data within the API response in the Path to Data field. JSON paths use dot notation to navigate through nested JSON structures.

    • For example, if your API response has the structure [{"id": 1, "name": "..."}, ...], you would enter $[*] to extract all items from the root-level array.
    • Use $[*] to extract all items from a root-level array.
    • Use $ to extract the entire root-level object.

JSON paths are case-sensitive and must match the exact structure of your API response. Copper API responses may use different structures like root-level arrays or objects depending on the endpoint. Use the Test button to verify that your JSON path correctly extracts the desired data from the API response.

Save the Data Source

  1. Once all configuration steps have been completed, click the Save button to save your data source configuration.

  2. The data source will now be available in your data flow and will begin ingesting data according to the configured schedule and endpoint settings.