Infusionsoft ERP Querying

The Cloud Elements Query Language (CEQL) provides a standard way to search across all of our elements. Rather than having users research how to query each resource at a provider, we've normalized your search experience. Cloud Elements translates your queries to the API provider's search syntax. CEQL represents the "where" portion of a typical query that can include many other components like field selection, sorting, and pagination. For more details on Querying, see Querying with CEQL.

To determine whether where clause is supported for an object, you can make an API call to object/{objectName}/metadata while providing the Element version and check for "filterable"="true".

Use CEQL to query the following endpoints:

  • GET /accounts
  • GET /bulk/jobs
  • GET /contacts
  • GET /{objectName}
  • GET /{objectName}/{objectId}/{childObjectName}
  • GET /leads
  • GET/notes
  • GET/opportunities
  • GET/users

We use the vendor’s DataService.query for most of the GET calls, since there is no GET or GETById directly exposed as APIs or webservices. For DataService.query, the table columns (field names) need to be passed to vendor in body. Users connecting to Infusionsoft ERP from Cloud Elements can use CEQL to query the object.

Below is the comparison of vendor vs. CEQL operators:

Vendor OperatorCloud Elements Operator
~<>~!=
==
~>~>
~<~<
~<=~<=
~>=~>=
~null~IS NULL

However, objects/{objectName}/metadata has ready info regarding querying.

In the above image, we are making a call to GET/ objects/{sales-orders}/metadata and we can see the filterable operators and the path which is the field to filter by.

Note: The reference fields can be found here: https://developer.infusionsoft.com/docs/table-schema/ . Since there is no API method at the moment that can retrieve the table, Cloud Elements stores these fields and passes them to the vendor; without them, the vendor would not give back the necessary fields as a response.