Rest API Workflow Action
Description: REST API acts as a communication link between two platforms, enabling interaction through methods like GET (retrieve), POST (create), PUT (update), and DELETE (remove)
Path: (Rest API can be executed using Model and Workflow)
PWR Apps platform > Login > Business Node > Layout > Open a layout > Workflow > Rest API Action
PWR Apps platform > Login > Business Node > Layout > Open a layout > Model
Rest API Using Model
Prerequisite:
Create a connection provider and establish a connection. Refer https://appbuilder.atlassian.net/l/cp/wnYNq8D5
Create a Model:
Details:
Type: API
Connection: Choose the desired connection to fetch records from
Label: Auto-populates, mirroring the connection Label
Name: Auto-populates, mirroring the connection name.
Execute on load: If checked, records will be fetched automatically upon loading the component
Refer:
Request:
Method:
Choose from HTTP methods like Get, Post, Put, Delete, Head, or Patch based on the operation you want to perform
URL: Add the relevant URL that corresponds to the connection from which you wish to get, create, update, or delete records
Record Count: Set the record count to either Multirecord or Single, depending on whether you are dealing with multiple records or a single record in the data operation
Body > Schema Designer:
Generate Schema: Users can define fields using JSON format. For example
{ "Date": "05/12/2023", "Date and Time": "05/12/2023 11: 40 AM", "Double": 51.21, "Integer": 399, "Object": "", "Text": "Smith" }
Create New Fields: Users can create fields using create field Model
Response:
Response: User can create new response with the help of status code
Schema Designer:
Generate Schema: Users can define fields using JSON format. For example
{ "Date": "05/12/2023", "Date and Time": "05/12/2023 11: 40 AM", "Double": 51.21, "Integer": 399, "Object": "", "Text": "Smith", "Array": [] }
Create New Fields: Users can create fields using create field Model
Crud using Rest API with Model in Workflow:
To Fetch Records: Get > Create a new layout and name it as Rest API Presentation
Create a New layout
Table Setup:
Drag and drop a Table component onto layout Designer
Add Table action as New and Refresh
Add row action on Table as Edit and Delete
Assign Model to Table Component:
Assign a model to the Table with the following details:
Type: API
Connection: Choose a connection e.g. Sales Connect
Label gets Auto-populates e.g. Sales Connect
Name gets Auto-populates e.g. Sales Connect
Request:
Method: GET
URL: /services/data/v56.0/query?q=select id,name,site from account
Record Count: Multirecord
Response:
Define or create a schema to fetch the response. This schema will structure the data received from the API call
{ "data": { "records": { "Name": " ", "Id": " ", "Site": " " } } }
In Component Attributes:
Basic:
Model: Select the model e.g. Sales Connect
Schema Source: Select "Response" as the source
Response Code: Set the response code to 200
In Fields:
Select data > record
Click on the Table component, and the Model fields will be displayed on the left side
Drag drop the fields on the Table component
Create a new workflow (defining Label and Name)
Show Spinner Action:
Drag and drop the "Show Spinner Action"
Define layout item (e.g., Table), variant, and size
Rest API Action:
Drag and drop the "Rest API Action"
Set the Source API Type to Model
Choose the Model (e.g., Sales Connect) assigned to the Table
Hide Spinner Action:
Drag and drop the "Hide Spinner Action"
Define the layout item
Connect Actions:
Connect the actions in the workflow
Call the workflow on component events
Refresh : tableAction
Select Action as Workflow
Select Config and define Workflow: (Select the workflow create for Get e.g. Get and Save)
Save & Run the Layout
Preview:
On preview, click on the Refresh Button.
The Get workflow will be executed, fetching the records
To Create Records: POST > Create a new layout and name it as Rest API Post
Form Setup:
Drag and drop a Form component onto layout Designer
Add Form Action as Cancel and Save
Assign Model to Form Component:
Assign a model to the Form with the following details:
Type: API
Connection: Choose a connection e.g. Sales Connect
Label gets Auto-populates e.g. Sales Connect
Name gets Auto-populates e.g. Sales Connect
Request:
Method: Post
URL: /services/data/v56.0/sobjects/Account
Record Count: Single
Body > Schema Designer
Define or create a schema to fetch the response. This schema will structure the data received from the API call
Response: No need to define response for POST
In Component Attributes:
Basic:
Model: Select the model e.g. Sales Connect
Schema Source: Select "Request" as the source
Now Fields will be displayed at the left corner drag and drop the fields on the form
Create a new workflow (defining Label and Name)
Rest API Action:
Drag and drop the "Rest API Action"
Set the Source API Type to Model
Choose the Model (e.g., Sales Connect) assigned to the Form
Toaster Action:
Drag and drop the "Toaster Action."
Fill Type with "Success" and Message with "Record created successfully!"
Save the Toaster Action
Emit Action:
Drag and drop the "Emit Action"
Add the event you have created
Save the Emit Action
Connect Actions:
Connect the actions in the workflow
Call the workflow on component events
Click on the form and navigate to Events > Save : Action.
Select Action as Workflow
Select Config and define Workflow: (Select the workflow create for Post e.g. Post and Save)
Save & Run the Layout
Preview:
On preview, check if the record is getting saved by clicking on the Save Button
Note: To execute CRUD for the Rest API go to the layout where you have drag dropped the table i.e. Rest API Presentation
Follow these steps on the layout where you have drag dropped the table
Create a Pop and refresh work flow
Drag and drop POP action and add label and Save
Drag and drop Workflow action and select the workflow created for Refresh Button
Connect the actions and Save the workflow
Click on the table and navigate to Events > New : tableAction
Select Action as Push Modal
Select Config and define Push Modal model
Layout: Choose the layout created for the POST method e.g Connection Post
Modal Header: Create New Records
Modal Size: Large
Event Mapping:
Event: Select the event created on the POST Method layout
Workflow: Select the Pop and Refresh workflow
And Save
Save & Run the Layout
Preview:
On preview, click on the New Button.
And fill the data in the fields and save
Check the same on Connected app i.e. Salesforce Account >navigate to Accounts from app launcher > view the change
To Update Records: Patch > Create a new layout and name it as Rest API Patch
Form Setup:
Drag and drop a Form component onto layout Designer
Add Form Action as Cancel and Update
Create a variable:
Add Label & Name
Type: Object
Add Schema:
Add Label and Name
Field Type: Object
Schema: Add Schema Id, Name and Site
And Save
Assign Model to Form Component:
Assign a model to the Form with the following details:
Type: API
Connection: Choose a connection e.g. Sales Connect
Label gets Auto-populates e.g. Sales Connect
Name gets Auto-populates e.g. Sales Connect
Request:
Method: Patch
URL: /services/data/v56.0/sobjects/Account/{variable:object.Id}
(Note: Use merge text for Id)
Record Count: Single
Body > Schema Designer
Define or create a schema to fetch the response. This schema will structure the data received from the API call
Response: No need to define response for Patch
In Component Attributes:
Basic:
Model: Select the model e.g. Sales Connect
Schema Source: Select "Request" as the source
Now Fields will be displayed at the left corner drag and drop the fields on the form
Create a new workflow (defining Label and Name)
Workflow 1: For e.g. name it as Put Data
Log Action:
Drag and drop the Log Action
In the Config section, add Log Source: Variable and choose the Variable: Select the variable you created
Add Action details and save the log action
Assignment Action:
Drag and drop the Assignment Action
Add conditions
Condition 1:
Destination Type: Model
Model: Select the model assigned to the Form
Schema Source: Request
Fields: Keep it blank, but ensure that fields are visible
Operator: Set
Source Type: Variable
Variable: Select the variable you created at the start
Condition 2:
Destination Type: Model
Model: Select the model assigned to the Form
Schema Source: Request
Fields: Id
Operator: Set
Source Type: Null
Connect Actions:
Connect the actions in the workflow
Save the workflow
Assign Workflow 1 on the onload event of the form
Workflow 2: For e.g. name it as Patch Records
Rest API Action:
Drag and drop the "Rest API Action"
Set the Source API Type to Model
Choose the Model (e.g., Sales Connect) assigned to the Form
Toaster Action:
Drag and drop the "Toaster Action."
Fill Type with "Success" and Message with "Record updated successfully!"
Save the Toaster Action
Emit Action:
Drag and drop the "Emit Action"
Add the event you have created
Save the Emit Action
Connect Actions:
Connect the actions in the workflow
Save the workflow
Assign Workflow 2 on the Update button
Save & Run the Layout
Preview:
On preview, check if the record is getting saved by clicking on the Update Button
Note: To execute CRUD for the Rest API go to the layout where you have drag dropped the table i.e. Rest API Presentation
Follow these steps on the layout where you have drag dropped the table
Create a Pop and refresh work flow
Drag and drop POP action and add label and Save
Drag and drop Workflow action and select the workflow created for Refresh Button
Connect the actions and Save the workflow
Click on the table and navigate to Events > Edit : tableAction
Select Action as Push Modal
Select Config and define Push Modal model
Layout: Choose the layout created for the Patch method e.g Patch Records
Modal Header: Update Records
Modal Size: Large
Event Mapping:
Event: Select the event created on the Patch Method layout
Workflow: Select the Pop and Refresh workflow
And Save
On Events > Add mapping on Edits workflow
Input Variable: Select the variable created on patch layout
Operator: Set
Source Type: Output Variable
Output Variable: Record
Save & Run the Layout
Preview:
On preview, click on the Edit Button i.e. row action
And fill the data in the fields and update
Check the same on Connected app i.e. Salesforce Account >navigate to Accounts from app launcher > view the change
To Delete Records: Delete
Create a workflow in Rest API Presentation
Where you have drag and dropped the table
Rest API Presentation
Details:
Request:
For URL merge text follow
No need to define Schema for delete
Response: No need to define response for Delete
Workflow: Delete Records
Prompt Action:
Drag and drop the prompt action
Rest API Action:
Drag and drop the Rest API action
Toaster Action:
Drag and drop the Toaster action
Connect Actions:
Connect the actions in the workflow
Save the workflow
Assign the workflow on table action Delete
Click on the table > Events > Delete :rowAction
Add mapping on the workflow
Save and Run the layout
Preview:
On preview, check if the record is getting deleted by clicking on the delete button Button
Check the same on Connected app i.e. Salesforce Account >navigate to Accounts from app launcher > view the change
Extra:
Get
Add Condition on Connector Mapping:
After the Rest API Action, set a condition on connector mapping
Condition: Model: Sales Connect, Set Output > Response: data
Save the workflow
Post
Add Condition on Connector Mapping:
Before the Rest API Action, set conditions on connector mapping i.e.
Condition 1:
Input Variable: Request :name
Operator: Set
Source Type: Model
Model: Select the model assigned to the form i.e. Sales Connect
Field: Select the field you want to post the record of i.e. Name
Condition 2:
Input Variable: Request :site
Operator: Set
Source Type: Model
Model: Select the model assigned to the form i.e. Sales Connect
Field: Select the field you want to post the record of i.e. Site
Save the workflow