Skip to main content

Data Source

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

Button

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

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

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

    List Audiences

    This endpoint enumerates and retrieves metadata for all the audiences you own in your Button account. Use this endpoint when you need to access audience information for analysis, reporting, or to identify audiences for use with other endpoints.

    • This endpoint automatically retrieves all audiences from your Button account. No additional configuration is required beyond selecting this endpoint template.
    • The endpoint uses GET requests to https://api.usebutton.com/v1/audiences. The endpoint URL is automatically constructed based on the Button API base URL.
    • The endpoint uses URL-based pagination, automatically fetching additional pages as needed using the next URL from the response metadata. When a response includes a meta.next field, Nexla automatically uses that URL to fetch the next page of results.
    • The endpoint will return all audiences in your account. The response data is extracted from the objects array in the API response ($.objects[*]), with each audience record processed individually.

    This endpoint supports pagination through the next URL mechanism. When a response includes a meta.next field, Nexla automatically uses that URL to fetch the next page of results. The endpoint uses URL-based pagination (iteration.type: paging.next.url) through the meta.next field in the response. The response data path is $.objects[*], which extracts all items from the objects array in the API response. For detailed information about retrieving audiences, see the Button API documentation.

    List Transactions

    This endpoint retrieves a list of transactions within all billing accounts in your Button account. Use this endpoint when you need to access transaction information for reporting, analytics, or revenue tracking.

    • Enter the start time for filtering transactions in the Start field. This should be an RFC 3339 formatted timestamp (e.g., 2015-11-18T00:00:00Z). The endpoint will filter transactions created at or after this time.

    • Enter the end time for filtering transactions in the End field. This should be an RFC 3339 formatted timestamp (e.g., 2015-11-18T00:00:00Z). The endpoint will filter transactions created before this time.

    • The endpoint uses GET requests to https://api.usebutton.com/v1/affiliation/transactions?start='{start}'&end='{end}' where {start} is the start time and {end} is the end time. The endpoint URL is automatically constructed based on the Button API base URL and the provided time parameters.
    • The endpoint uses URL-based pagination, automatically fetching additional pages as needed using the next URL from the response metadata. When a response includes a meta.next field, Nexla automatically uses that URL to fetch the next page of results.
    • The endpoint will return all transactions within the specified time range. The response data is extracted from the objects array in the API response ($.objects[*]), with each transaction record processed individually.

    Both start and end times must be in RFC 3339 format (e.g., 2015-11-18T00:00:00Z). The start time filters transactions created at or after this time, and the end time filters transactions created before this time. This endpoint supports pagination through the next URL mechanism. When a response includes a meta.next field, Nexla automatically uses that URL to fetch the next page of results. The endpoint uses URL-based pagination (iteration.type: paging.next.url) through the meta.next field in the response. The response data path is $.objects[*], which extracts all items from the objects array in the API response. For detailed information about retrieving transactions, see the Button 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

Button data sources can be manually configured to ingest data from any valid Button 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 Button 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 Button 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 Button 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. Button API endpoints typically follow the pattern https://api.usebutton.com/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 Basic Authentication, which is handled automatically by your credential configuration. For detailed information about Button API endpoints and available APIs, see the Button 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 {"objects": [...]}, you would enter $.objects[*] to extract all items from the objects 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. Button API responses typically use an objects array to contain the actual data. 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.