Step 3: Create the API
Create an API to trigger the Flow to create records from the list of customers and store them in the โUserName_Acc_customersโ Entity created in Step 1.
To go to APIs, click โAPIโ under the โAPIs and integrationโ menu on the left side panel.

To create a new API, click the [+ API] button.

The New API page displays with the Details tab preselected. To define the API, add the following information:
Enter the API name as โUserName_async_addlistofcustomersโ. The name indicates that a customer has been added.
Select the API method as โPOSTโ. This defines that the API will post or send data.
Optionally add a description for the API.

Create a new Group Name by clicking [+].
Enter the Group name as โUserNameโ.
Enter the Group base URL as โUserNameโ.
To save the Group name details, click [Save].

Add API Paths as โasyncโ and โaddlistofcustomersโ. Each parameter displays in a blue bubble.

The URL for the API is generated.

To define the Request body and Response body details, go to the โInputs & outputsโ tab.

To define the Request Body, go to the Inputs & outputs tab>Request body section. Click it to expand the already created Request body. It is defined with the following information:
By default, the name for the request body is โdefaultRequestJsonBodyโ. For this exercise, label it as โrequestJsonCreateCustomerโ.
Content type from the list of values is selected as โapplication/jsonโ. This defines the type of content in the request.
Character set is selected as โUniversal (UTF-8)โ.
Optionally enter a description for the โRequest Bodyโ. (This is used in the API documentation.)
To define the json sample for the request, add the following Json:
[{ "Address_Line_1": "first Street", "City": "", "Customer_Value": 5, "Country": "USA", "Email": "[email protected]", "First_Name": "Jane", "IsActive": true, "Join_Date": "2021-09-15", "Last_Name": "Doe", "Phone": "1237865", "Rating": 1000, "Zip_Code": "45"
}]

To define the Response body, go to the Inputs & outputs tab>Response body section and click it to expand it. A Response body is already created and defined with the following information:
By default, the name for the response body is โdefaultResponseJsonBodyโ. For this exercise, keep the response body name as is.
The Content type from the list of values is selected as โapplication/jsonโ. This defines the type of content in the response.
The Response Code is selected as โ200 OKโ.
Character set is selected as โUniversal (UTF-8)โ.
Optionally add a description for the โResponse Bodyโ(This is used in the API documentation).
To define a sample Json for the response, type the following json object:
{ "status": "success or failed", "errorcode": "0","message": "The response of creating the entity record.","details": [] }This object indicates that: - The status is โsuccessโ or โfailedโ. - The error code is zero (0). - The message displayed is โThe response of creating the entity recordโ. - The details will be a list of values as identified by the two square brackets โ[]โ

To define the Target entity for this API, go to the โTarget Entitiesโ tab. Target entities are the entities that the Actions in this API can process data into i.e. perform add, update, or delete upon. To create a new target entity, click [+ Target entity].

To define the Target Entity for storing the created record:
Select Target Entity as โUserName_Acc_customersโ.
Keep โselect a default validationโ as is. If a Validation pipeline needs to be applied to the data before storing in an entity, the relevant Validation pipeline can be selected in this field. In this exercise, no Validation pipeline is applied.
โShow in API gatewaysโ toggle button is enabled by default. This must be enabled so that the API is visible to the API gateway through which it can process the information into the entity.

To see the default variables created for an API, go to the โVariablesโ tab. The following two (2) Read Only variables are predefined:
Variable Name: โRequestโ, Data Type: โWebRequestโ. This variable contains the Web Request received.
Variable Name: โResponseโ, Data Type: โWebResponseโ. This variable contains the Web Response sent.

To create Actions for this API, go to the โCodeโ tab. By default, an โAction boxโ is already created with the description of the โAction boxโ as โOnExitโ. To change the โAction boxโ label, double click the description and label the Action box as โcreate records for list of customersโ. In this โAction boxโ, the records will be updated in the entity โUserName_Acc_customersโ based on the request received.

Click on the arrow on the top right corner of the โAction boxโ to expand it. In the โCodeโ tab, an Action called โAPI Respondโ is already added. Notice the variable as โdefaultResponseJsonBodyโ. Remove this action for now.
First, the variables need to be defined and initialized. To define the variables, go to the โVariablesโ tab of the โAction boxโ. To create a new variable, click the [+ Variable] button.

To contain the values for the fields of the desired entity in a record, define the variable as follows:
Enter Variable Name as โtriggerCustomerRecordโ.
Select Data Type as the Entity โUserName_Acc_customersโ.

To contain the values for the Json fields received in the request, define the variable as follows:
Enter Variable Name as โdetailsJSโ.
Select Data Type as the Entity โJsonโ.

To define the Json sample (layout in which the list of customers will be received in the request), click the [Sample] button.

Add the following Json sample in the Sample Schema View:
{ "customerslist": [{ "Address": "first Street","City": "","Customer_Value": 5,"Country": "USA","Email": "[email protected]","First_Name": "Jane","IsActive": true,"Join_Date": "2021-09-15","Last_Name": "Doe","Phone": "1237865","Rating": 1000,"Zip_Code": "45" }] }To save the Sample Schema, click the [Save] button.

To define the actions for this API, go to the โCodeโ tab of the Action box and add three (3) Actions.

Define the first three actions to acknowledge the request and to send the response that the request is queued. To send the response code, redefine the first, existing first Action as follows:
Select Action as โUpdate Variableโ.
Select Target Value as Response>defaultResponseJsonBody>errorcode. It displays as โResponse.defaultResponseJsonBody.errorcodeโ.
Enter Value as โ200โ and press Enter.

To send the response message, add the second Action and define it as follows:
Select Action as โUpdate Variableโ.
Select Target Value as Response>defaultResponseJsonBody>message. It displays as โResponse.defaultResponseJsonBody.messageโ.
Enter Value as โYour request is now queued for processing.โ and press Enter.

To send the response status, add the third Action and define it as follows:
Select Action as โUpdate Variableโ.
Select Target Value as Response>defaultResponseJsonBody>status. It displays as โResponse.defaultResponseJsonBody.statusโ.
Enter Value as โRequest Queuedโ and press Enter.

Once the response has been sent, the created Flow will be triggered to create the customer record. To trigger a Flow, it is mandatory that an entity record is loaded.
To create the record to load and ensure it does not get deleted, for this exercise, go to the โUserName_Acc_customersโ entity and create a record as follows:
Address: DO NOT DELETE
City: DO NOT DELETE
Country: DO NOT DELETE
Customer_ID: (autogenerated)
Customer_Value: 1
DayMonthJoinDate: (current day and month)
First_Name: DO NOT DELETE
IsActive: true
Join_Date: (current day and month)
Last_Name: DO NOT DELETE
Phone: DO NOT DELETE

To load the entity record for triggering the Flow, go to the API, add the fourth Action, and define it as follows:
Select Action as โLoad Entity recordโ.
Select Target Value as โtriggerCustomerRecordโ.
Click on the Setup Criteria button to define the settings for this Action.

To define the Setup criteria for the entity record:
Select Order by as โFirst_Nameโ.
By default, the โDescendingโ option is selected. Keep it as is.
Add a match key by clicking the [+ Match key] button.

To match the First_Name field of the entity to โDO NOT DELETEโ text, define the match key as follows:
Select Field as โFirst_Nameโ.
Enter Source as โDO NOT DELETEโ.
To save the settings, click the [Save] button.

To update the request into the Json field to be loaded with the entity while triggering Flow, add and define the fifth Action as follows:
Select Action as โUpdate Variableโ.
Select Target Value as detailsJS>customerslist. It displays as โdetailsJS.customerslistโ.
Enter Value as Variables>Request>defaultRequestJsonBody. It displays as โRequest.defaultRequestJsonBodyโ.

To trigger the Flow, add and define the sixth Action with the entity variable and Json sample as follows:
Select Action as โTrigger Flowโ.
Select Flow as โUserName_createlistofcustomersโ. Select Entity variable as Variables>triggerCustomerRecord. It displays as โtriggerCustomerRecordโ.
Select Json as Variables>detailsJS. It displays as โdetailsJSโ.

To send the API response, add the last Action and define it as follows:
Select Action as โAPI Respondโ.
Select Response body as โdefaultResponseJsonBodyโ.

To save the API, click the [Save] button.

To publish the API, click the [Publish] button.

To define the API gateway, go to the Details tab and add the API gateway for this API as โUserName_async_addlistofcustomersโ. Save the API again.

Ensure the API is enabled in the โDetailsโ tab on the right-hand side.

To test the API, click the [Test] button.

In the Test Console:
Add the values of the list of customers.
Enable the [Entity actions] toggle button.
Click [Test API].

To see the Response, go to the Body section in the Test Console. The response message displays stating that the request is queued for processing.


Last updated
