In this tutorial we will provide an example on how to use our Custom External API integration. Use-cases will wary depending on the API and the API connection type

Step 1.

Go to the main page and click on "Custom Integrations"

Then click on "ADD CUSTOM INTEGRATION"

Step 2.

Name the integration and put a description (Optional) .

After that, You set the visibility . Set it to your company, or to a specific company under your Main Company

IMPORTANT NOTE: If you want to set it public, contact the support because an developer has to check the integration and approve it.

After that , set the Integration Type to "External API"

Next step (Optional) is to set the Integration Picture

Step 3.

When you have added all the information click on "Configure" .

Now, we get to the "Data Type" and "Connection" Configuration. We are skipping Workflow as it is not available for Users.

Step 4.

Click on "Add Data Type"

The Data Type is where we specify the API endpoint we want to use for our template. We can add as many Data Types as needed for this integration.

Name the data type for the specific endpoint you are creating at the moment.

In our case we are using Flowlu's API documentation, and the Data Type (Entity) is "Get Accounts" so we will name it "Get Accounts"

Now we go to the configuration of the Data Type by clicking "Done" and then clicking on the Data type itself.

We have 3 stages of Configuration of the Data Type :

-CONFIG

-PAGINATION

-SCHEMA

Step 5.


Now we will set up the CONFIG Part of the data type.

Here are all the options

First step is the Request type. Here we will set "GET" as we are trying to get accounts.

Now we need to add the "Endpoint" For the specific data type. Endpoint is everything after the base URL of the specific request type, in this case we can find it under Flowlu's "CRM" GET --> Account field,

Whole URL: https://{company}.flowlu.com/api/v1/module/crm/account/list

Base URL: https://{company}.flowlu.com

API Endpoint: /api/v1/module/crm/account/list

We add this endpoint to the API Endpoint Field

TYPE

Next is the "Type" which in this case is JSON as we can see from the Documentation

We set it in SyncSpider to "JSON"

DIRECTION

After we set it to JSON, we now have the Direction of where the data goes. In this case we are using Import as we are Importing ( Using this Entity as Source Entity) Accounts to Syncspider .

Dynamic URL Option

Now we have the Dynamic URL Option

Dynamic URL fields represent fields tagged in the API Endpoint inside curly brackets "{id}". Example "/projects/{id}/customers" . For Users, they will be displayed in the source or destination configuration step, There are two types of dynamic URL fields:

1. Option type fields: will be displayed to users as HTML select box which values will be generated from specific selected Data type.

2. field type fields: will be displayed to users as an HTML input box, the input value of this field is filled by the user itself.

In this case we are not using it as our endpoint doesn't have an {id}

Keep parameter as it is? Option

Next option is "Keep parameter as it is?"

This option is used in case the BASE URL is in the endpoint field.

Example: https://{company}.flowlu.com/api/v1/module/crm/relation/list

Get Last Value from Parameter? Option

This option is used if you have a parameter you want to seperate something with.

Example:

Throttle Request

API throttling is the process of limiting the number of API requests a user can make in a certain period

In this option you can set how many Throttles SyncSpider limits the requests per minute and per second.

NOTE: In the API there is usually how much is the Throttle Limit. But for this specific usecase there was no Information.

We have configured everything that we need for this specific Entity so we click on "Save & Next"

PAGINATION

Now we move on to the Pagination settings. Here are all the settings that we have in Pagination :

Disable pagination

First we have Disable pagination

  • Used to disable pagination all together.

Page

In this case you will have to define the Page key, for some cases its just "p" or "page"

IMPORTANT NOTE: Define key for Page (to remove key from request type '-1')

Page Start from

Define start number for page pagination (0 or 1)

In this case we can find it in Flowlu's API documentation under the Basic methods field for LIST, As we can see the Default is 1 so we will set it to 1 In Syncspider.

Limit

Limit is the limit for the batch of data that you are sending per page. Usually the key is "limit" so we will set it to limit

IMPORTANT NOTE: Define key for Limit (to remove key from request type '-1')

Limit Batch

Here you will set the actually limit of the Data that you are batching per page, If you don't put a value here the default will be set to 25 in Syncspider. In Flowlu documentation we can see that the default is 50 and the maximum is 100, we will set 50 for this usecase.

There are some other options but these are the basic options for the user.

Now we click on "Save & Next" and we move to Schema.

Schema

Schema is the part where you modify and add the fields that you will use for your External API Integration.

Here are the options :

Content - Here is where you input your code (in this case JSON )

Root Schema Node - the action you are doing

Add Field - Add and configure a field of your choosing

For Root Schema node, we will be using "response.items" as we are trying to get all information from the "response" and Items has all the information that we need

For the Json code that we will be adding , it is everything from "{" to the "}" , so everything under items, as these are the information we are looking in the JSON data.

After you have added all this JSON to the "Content" In Syncspider. Click on "Generate Schema"

As you can see now, the JSON code created all the fields that we need from it, now you can modify the fields to your preference.

__________________________________________________________________

With this we end our tutorial, if you got any further questions regarding this. Please do contact us.

Did this answer your question?