ICApp
5 min read
In Rapidomize platform we name workflows as Intelligent Connected App, in short
Workflows are represented as graphs (as in DAG - Directed Acyclic Graph). In a workflow graph each vertex, referred to as a Node or Step, process your data in a stepwise manner to incrementally complete service/application logic. We name a workflow as an Intelligent Connected App, in short
First Node starts execution of your workflow service/application logic. Execution starts when an Event, such as timer ticks or new or updated data is available for processing occurs in the first Node. An Event can occur in a node due to a scheduled execution, api execution, retrieval of data from a service, … etc. This first Node where an event occurs, is called a Trigger and other Nodes in the workflow are called Actions. Actions can process/tranform your data or connect to remote services such as SaaS apps, integrate to your ERP systems, or databases to send, receive or store data. In an Action. However, for the time being, Trigger Node.
How ICApps are represented?
-
having one Triggerand oneAction. Here, every time an Event occurs inTrigger, theActiongets executed. So the data from theTriggeris fed into theActionfor consumption.
-
having one Triggerand twoActions. Here, every time an Event occurs inTrigger, both theActionsget executed concurrently. So the Event’s data from theTriggeris fed simultaneously into bothActionsfor consumption.
-
having one Triggerand twoActionsin sequence. Here, every time an Event occurs inTrigger, both theActions get executed one after the other as per their order. TheAction1gets executed first followed byAction2. The Event’s data from theTriggeris fed first into theAction1and then toAction2. This model allowsAction2to consume both the data from original Event and the data received fromAction1.
How ICApps are executed
- When an Event occurs in the
TriggerNode, platform executesActionsNodes connected to theTriggerin thein a stepwise manner. - The Event data is fed from the
Triggerinto eachActionin theso that Actionscan consume that Event’s data & do additional processing. Actionscan send, receive or transform data. They also can produce status as data. IfActionsreceive data (or produce status as data), such data can also be fed back into the execution flow, leaving you with both original Event’s data and data received fromAction'sexecution.can have multiple parallel flows (or branches). Each branch is executed concurrently. - If an
Actionfails, it will be automatically retried several times. If anActionfail hard (due to permanant issue - such as config/data error or after retry) then the execution for that particular branch will be holted at that particularActiononward.
ICApp’s data formats
- We utilize JSON format as the normalized form to represent data for ICApp execution. If the apps, services or devices you connect, produce non-JSON data, then the normalization process encodes such data into
JSONform, so that they can be processed consistently. - Event/data received or status produced by
Actionsare available asMacrosat desiging time of the. This allows you to feed such event/data/status from one Actionto another by configuration.
Trigger is executed. Executions depend on the type of Trigger in your
Types of Triggers
There are three types of triggers.
-
Scheduler based
Triggers(Cron/Timer): Allows you to configure a periodic (crons style) execution schedule for your. 
-
APIs or Webhooks based
Triggers- TheseTriggersare executed instantly when an API or Webhook is invoked. For example using HTTP POST, or MQTT message is published.

-
SaaS App
Triggers- There are two categories- Instant - These
Triggersare executed instantly when SaaS App sends us an Event. For example when a new record is created in the SaaS App. - Scheduled - Rapidomize periodically polls and check for Event data for your SaaS App. Minimum polling interval that you can select for your ICApp depends on your account plan.

- Instant - These
Minimum polling interval per Account Plan
Free or Liteplans - 15 minStandardplans - 5 min- All other plans - 3 min
Authentication & Authorization for APIs or Webhooks based Triggers
Authentication
Token based API authentication are supported for the time being. Token is used in the Authorization header for App/Device backends where HTTP headers can be specified. Otherwise token can be used with URL query parameters. However, latter method is not encouraged unless your app is frontend only i.e. static webapp.
All request must be submitted using HTTPS to avoid compromising your token.
Authorization
If your App/Device has a separate backend, it is highly recommended to whitelist your Domain or IP address of your servers.
Auth header
When using HTTP REST API without the SDK, for HTTP Basic authentication you need to use username and password separated by a single colon (":") character within a base64 encoded string in the credentials. Here you must leave the username blank and specify the token as password field of the HTTP Basic Auth header.
In plain HTTP, that is
Authorization: Basic Base64 encoded :YOUR_TOKEN