Step 1: Configuring a Connector

Learn about the options for data sources when building a connector, and how to configure selectors.

Data Sources

Which sources can I pull data from?

Any data that in these formats can be ingested by a connector:

  • XLSX, CSV, or JSON file type
  • Within an API, formatted as JSON
  • Within a webpage that can be crawled (without needing authentication)

Even if the source is not a native source, or if the current operations on the native source don’t include the type of data you’re looking for, it can still be ingested using a Pull From API connector.

For all available data sources, see the Native Sources and Generic Sources sections of the Connectors reference documentation.

When should I use a function?

Function connectors are an option for any data that can be accessed within a typescript function and output as JSON.

Additionally, the following pagination methods will require a function:

  • GraphQL
  • LQS pagination
  • Any pagination method that requires the pagination settings to be passed in the response body

See the Function Source reference for more information.

Selectors

For more information, see the Selectors reference.

Why are my selectors all empty?

If the format of the API response has changed, or if the settings have changed between List of Objects vs. Single Object, it’s likely that the default selectors are no longer valid. You can delete all existing selectors and re-add default selectors to match the response and response settings

Why aren’t certain selectors appearing in the dropdown or as default selectors?

Only leaf nodes within the first page of the API response with at least one non-null value are considered default selectors. You can manually add selectors if they do not fall within this category.

None of the default selectors are returning data as expected – what should I do?

Make sure that the proper JMESpath syntax is used. It’s likely that the List Key path is not correct.

For example, if all the objects are contained within an array, the JMESpath for the container should be outerObject[0].innerObject,. Then, each selector can be the inner nodes, like DocumentID and name (which should populate using default selectors).

{
  "outerObject": [
    {
      "innerObject": [
        {
          "DocumentID": 1,
          "name": "one"
        },
        {
          "DocumentID": 2,
          "name": "two",
        }
      ]
    }
  ]
}