Types of modules¶
Ibexa Connect distinguishes five types of modules: Actions, Searches, Triggers, Aggregators and Iterators. The two latter ones are intended for advanced scenarios.
Actions¶
Actions are the most common module type.
-
A typical action module returns just a single bundle which is then passed on to the next module for processing.
-
Action modules can be placed at the beginning, middle, or end of a scenario.
-
Scenarios can contain an unlimited number of action modules.
Examples:¶
-
Dropbox > Upload a file sends a file to a selected Dropbox folder and returns its identifier.
-
Image > Resize receives an image, resizes it to specified dimensions, and passes the resized image on to the next action.
-
Google Analytics > Create a report gets information about web traffic and passes it on for further processing.
Update¶
The Action type has four sub-types: Create, Read, Update and Delete. The Update sub-type enables the following three operations:
-
Erase the content of a field. This operation takes place when the content of the field is evaluated to
erase
keyword (not to be confused with empty): -
Leave the content of a field unchanged. This operation takes place when the field is left empty or the content of the field is evaluated to empty (represented via null in JSON):
-
Replace the content of a field. This operation takes place in all other cases than those two described above.
Note
If you do not see the erase
keyword in the mapping panel than either the module is not an update module or it has not been updated to the latest apps specification yet.
The reason, why it has been decided that empty will result in no change of the field content is that if there is a need to act differently and erase the field instead then it is easily achievable with the following formula:
whereas leaving the content of the field unchanged when the field's content is evaluated to empty is currently not possible.
Searches¶
-
A typical search module returns zero, one, or more bundles which are then passed on to the next module for processing.
-
Search modules can be placed at the beginning, middle, or end of a scenario.
-
Scenarios can contain an unlimited number of search modules.
Examples:¶
- Monday > List pulses in all boards returns all account's pulses.
Triggers¶
Trigger modules generate bundles when there has been a change in a given service. The change can be a creation of a new record(s), deletion of a record(s), update of a record(s), etc. Ibexa Connect distinguishes between two types of triggers: Polling triggers and Instant triggers.
-
Every trigger can return zero, one, or more bundles which are then passed on to the next module for processing.
-
Triggers can be placed only at the beginning of a scenario.
-
Each scenario can contain only one trigger.
Polling triggers¶
Polling triggers are designed to regularly poll a given service whether there has been a change since their previous run. So you will typically schedule a scenario containing a polling trigger module to run periodically by selecting for example At regular intervals option from the Schedule setting panel. If there is a change the trigger will return bundles containing information about the change. If there is no change the trigger will output no bundles.
Polling triggers allow you to select the first bundle they should output via the epoch panel. The panel is displayed automatically after you save a trigger or when you make a substantial change in the trigger settings. You can also display the panel by right-clicking the module and choosing "Choose where to start" from the context menu.
Note
Settings made in the epoch panel affect only the first execution of the module. Once the module is executed, it will remember the last outputted bundle and the settings made via epoch panel will be voided.
Examples:¶
-
Dropbox > Watch files returns files that were newly added since the last time the scenario was run.
-
Twitter > Watch Tweets returns new Tweets posted by the user since the last time the scenario was run.
-
Tumblr > Watch posts returns new posts added to a selected blog since the last time the scenario was run.
Instant triggers¶
Instant triggers enable the service to notify Ibexa Connect about the change immediately. You will typically wish to schedule a scenario containing an instant trigger to run immediately by selecting the Immediately option from the Schedule setting panel. See also Webhooks for further details on how the incoming data are handled.
Examples:¶
- Paypal > New notification returns new payment notifications.
Aggregators¶
Aggregators are modules that accumulate multiple bundles into one single bundle.
-
Every aggregator returns only one bundle which is then passed on to the next module for further processing.
-
Aggregators can be placed only in the middle of a scenario.
-
Scenarios can contain an unlimited number of aggregators.
Examples:¶
-
Archive > Create an archive compresses received files into a zip archive.
-
CSV > Aggregate to CSV merges multiple strings from a CSV file into a single row.
-
Tools > Text aggregator combines several strings together into one single string.
Iterators¶
Iterators are modules that split arrays into multiple, separate bundles.
-
Every iterator returns one or more bundles which are then passed on to the next module for processing.
-
Iterators can be placed only in the middle of a scenario.
-
Scenarios can contain an unlimited number of iterators.
Examples:¶
- Email > Retrieve attachments breaks an array of attachments into separate bundles. .md) > Retrieve attachments** breaks an array of attachments into separate bundles.