Skip to main content

Data Source

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

Coupa

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 Coupa connector tile from the list of available connectors. Then, select the credential that will be used to connect to the Coupa instance, and click Next; or, create a new Coupa credential for use in this flow.

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

    Coupa sources can also be configured manually, allowing you to ingest data from Coupa 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 Coupa endpoints. Each template is designed specifically for the corresponding Coupa 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.

    Fetch all Records

    This endpoint retrieves a list of all records of a type. Use this endpoint when you need to access all records of a specific type (users, invoices, purchase orders, etc.) from your Coupa account.

    • Select the type of Coupa API object you wish to fetch from the Object Type dropdown menu. Available options are:

      • Addresses: For fetching addresses
      • Approvals: For fetching approvals
      • Charges: For fetching charges
      • Contracts: For fetching contracts
      • Expense Reports: For fetching expense reports
      • Invoices: For fetching invoices
      • Items: For fetching items
      • Payments: For fetching payments (coupa_pay/payments)
      • Purchase Orders: For fetching purchase orders
      • Purchase Order Changes: For fetching purchase order changes
      • Requisitions: For fetching requisitions
      • Suppliers: For fetching suppliers
      • Supplier Items: For fetching supplier items
      • Users: For fetching users (default)

      The default value is users if not specified.

    • The endpoint uses GET requests to {api_url}/api/{object_name}?offset={offset} where {object_name} is the object type you select and {offset} is the pagination offset. The endpoint URL is automatically constructed based on the Coupa API base URL, the object type, and the pagination offset.
    • The endpoint uses offset-based pagination, automatically fetching additional pages as needed. Pagination starts from offset 0 and increments by the page size for each subsequent page. 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.

    Object types should match the Coupa API specification. The endpoint uses offset-based pagination (iteration.type: paging.incrementing.offset) starting from offset 0. 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 Coupa API documentation.

    Fetch One Record

    This endpoint fetches a specific record of the selected type. Use this endpoint when you need to access a specific record (user, invoice, purchase order, etc.) from your Coupa account using its unique identifier.

    • Select the type of Coupa API object you wish to fetch from the Object Type dropdown menu. Available options are:

      • Addresses: For fetching addresses
      • Approvals: For fetching approvals
      • Charges: For fetching charges
      • Contracts: For fetching contracts
      • Expense Reports: For fetching expense reports
      • Invoices: For fetching invoices
      • Items: For fetching items
      • Payments: For fetching payments (coupa_pay/payments)
      • Purchase Orders: For fetching purchase orders
      • Purchase Order Changes: For fetching purchase order changes
      • Requisitions: For fetching requisitions
      • Suppliers: For fetching suppliers
      • Supplier Items: For fetching supplier items
      • Users: For fetching users (default)

      The default value is users if not specified.

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

    • The endpoint uses GET requests to {api_url}/api/{object_name}/{record_id} where {object_name} is the object type you select and {record_id} is the record ID you provide. The endpoint URL is automatically constructed based on the Coupa API base URL, the object 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 Coupa API endpoints, such as the "Fetch all Records" endpoint, which returns 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. For detailed information about fetching a record by ID, see the Coupa 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

Coupa data sources can be manually configured to ingest data from any valid Coupa 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 Coupa 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 Coupa 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
    • 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 Coupa 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. Coupa API endpoints typically follow the pattern {api_url}/api/{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 API key authentication via the X-COUPA-API-KEY header, which is handled automatically by your credential configuration. For detailed information about Coupa API endpoints and available APIs, see the Coupa 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. Coupa 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.