Articles in this section

Export data from GraphQL

Use this article to configure a GraphQL export in integrator.io — including the HTTP method, query, variables, paging, and advanced settings. GraphQL is a query language for APIs that lets you request only the fields you need, reducing response size compared to REST API calls.

Additional resources: GraphQL documentation

Prerequisites

Before you begin, confirm the following:

Create GraphQL exports

Important

To create a GraphQL export, you need a working GraphQL connection.

Start creating an export to your application using GraphQL in either of the following ways:

  • From the Build menu, select Flow builder. Then, select Add source.

  • From the Resources menu, select Exports. Then, select + Create export.

From the Application drop-down menu, select GraphQL and your available GraphQL connection.

Configure export settings

Field

Description

Accepted values

Required

HTTP method

Determines how you're sending and receiving data from your application. If POST is used, the HTTP request body typically contains filtering or selection criteria, which you can provide in the body field. Consult your application's API documentation to determine which method to use.

GET, POST

Yes

Query

Defines the request the GraphQL server is processing. If you use the query shorthand syntax (omitting the operation type and name), you can't supply a name or variable definitions for your operation. You can build a query during a connection, export, or import — the query structure stays the same across all three.

GraphQL query string

Yes

Operation name

A meaningful name for your operation, required only if your query contains two or more operations (a request can only execute one operation at a time). Useful for debugging and server-side logging — it's easier to identify a named query in your logs than to decipher its contents.

Any string

Only if query has 2+ operations

Variables

Defines the JSON variables used in your query. For example, for query GetProduct($id: ID), define the variable as {'id':'12345'}. Use single quotes inside Handlebars functions to prevent parsing errors.

JSON object

No

Note

Use single quotes for string arguments inside the Variables field when using Handlebars functions (such as dateFormat or if) . GraphQL variables are converted to JSON before being sent, so double quotes inside Handlebars functions break the JSON structure and cause a parsing failure. This requirement applies specifically to the Variables field. If parsing fails, the resource will return an error in the flow run history.

Fails to parse:

{
  "query": "updated_at:>='{{dateFormat \"YYYY-MM-DDTHH:mm:ss[Z]\" lastExportDateTime \"YYYY-MM-DDTHH:mm:ss.SSS[Z]\"}}'"
}

Parses correctly:

{
  "query": "updated_at:>='{{dateFormat 'YYYY-MM-DDTHH:mm:ss[Z]' lastExportDateTime 'YYYY-MM-DDTHH:mm:ss.SSS[Z]'}}'"
}

Configure export type and preview records

Export type

Value

Description

All

Exports all records every time the export runs.

Delta

Exports only records that have been modified since the last run.

Once

Exports all records one time only.

Limit

Exports a set number of records as a test. Default: 1. Maximum: 100.

Preview & send

Tab

Description

Preview

Runs the export against your live connection. Select Send to execute the request and view results.

Mock output

Lets you define a sample response manually, without making a live API call. Use this to test downstream mapping when live data isn't available. See Provide mock output data for exports and lookups for details.

Results from the Preview tab are displayed across three sub-tabs:

Sub-tab

Description

Request

Shows the constructed HTTP request sent to the source application, including headers and query body.

Response

Shows the raw HTTP response returned from the source application.

Parsed output

Shows the records extracted from the response, as integrator.io will pass them to the next flow step.

Does this API use paging?

6223903350683-pagination.png

See pagination for details on which paging method to use.

Non-standard API response patterns

6223921259675-non-standard.png

Some APIs may have response patterns that are unusual when compared to most APIs. Use the settings below to accommodate outlying response codes.

Field

Description

Path to records in HTTP response body

Specifies where integrator.io should look for the resource (or set of resources) in the API response. Leave blank if resources are at the root. If the response has a nested structure, enter the path using dot notation (e.g., data.results).

Path to error field in HTTP response body

Set this only if the API always returns a successful HTTP status code but uses a response body field to indicate failure — for example, returning 200 but signaling errors via error.message.

Error values

Limits which values in the error field are treated as failures. To provide multiple values, use a comma-separated list.

Path to success field in HTTP response body

Set this only if the API always returns a successful HTTP status code but uses a response body field to indicate success — for example, returning 200 with a success boolean.

Success values

Limits which values in the success field are treated as successful responses. To provide multiple values, use a comma-separated list.

Path to detailed error message field in HTTP response body

Specifies which field in the response body contains the detailed error message shown in the error management dashboard. If left blank, integrator.io uses the full HTTP response body as the error message.

Advanced

6223905003419-Advanced.png

Field

Description

Configure async helper

If data is exported asynchronously, select this checkbox to configure the async helper.

Page size

The number of records per page when integrator.io sends export data to an import queue. Default: 20. There is no maximum value, but pages are automatically capped at 5 MB. Leave blank to use the system default.

Data URI template

When your flow runs with data errors, this setting lets you verify that all errors have a link to the original data in the export application. Enter a Handlebars template to generate dynamic links based on the exported data. For example: https://your-store.myshopify.com/admin/customers/{{{id}}}

Do not store retry data

Select this checkbox if you don't want integrator.io to store the data associated with errors for this export.

Override trace key template

Defines a trace key to identify a unique record. Enter a single field such as {{{field1}}} or a Handlebars expression. For example, {{join "_" field1 field2}} generates field1_field2. Setting a value here overrides the platform default trace key.