Step 1: Create the Flow component

The first step is to create a Flow component. This Flow component will be part of the Flow twice. The user enters configuration values in the Flow component through Field Mapping.

  • To go to the Flow component, click โ€œFlow componentโ€ under the โ€œBackground processesโ€ menu on the left side panel.

  • To create a new Flow component, click [+ Flow component].

  • The โ€œDetailsโ€ tab is selected by default.

    1. To define the Flow component, label it as โ€œActivityEmailSenderโ€.

    2. To elaborate on the purpose of this Flow component, optionally enter a description.

    3. To store information/logs regarding the execution of the Flow component and associated events, create a โ€œFlow Progression Entityโ€ labeled as "UserName_flowApp_progressionโ€ by clicking the [+] button.

  • To enable execution of multiple requests, disable โ€œSkip execution while in progressโ€ by clicking the toggle button.

By default, it is enabled. If this remains enabled then the Flow component will not be triggered for the other requests while one request is in progress. Since more than one request will be received simultaneously, if one customer request is in progress, additional requests will be skipped.

  • To define the Mapped Fields, expand the โ€œField Mappingโ€ section by clicking on the arrow. Mapped Fields are input fields for this Flow component. (When the Flow component is placed in a Flow, the user can assign values to these fields in the form of constant text or from relevant sources before executing the Flow.) To add a new field, click [+ Field]. Add nine (9) mapped fields.

  • To set up the Mapped Fields, define the fields as follows:

    1. Mapped Field: โ€œCustomerIDโ€, Data Type: โ€œstringโ€. This mapped field will contain Customer ID information.

    2. Mapped Field: โ€œFromโ€, Data Type: โ€œstringโ€. This mapped field will contain the text displaying which person or team sent the email.

    3. Mapped Field: โ€œSubjectโ€, Data Type: โ€œstringโ€. This mapped field will contain the contents of the email subject.

    4. Mapped Field: โ€œEmailBodyโ€, Data Type: โ€œstringโ€. This mapped field will contain the contents of the email subject.

    5. Mapped Field: โ€œActivityTypeโ€, Data Type: โ€œstringโ€. This mapped field will contain the value of the type of activity being recorded for the customer.

    6. Mapped Field: โ€œAssignedToโ€, Data Type: โ€œstringโ€. This mapped field will contain the information about who the task was assigned to.

    7. Mapped Field: โ€œPriorityโ€, Data Type: โ€œnumericalโ€. This mapped field will contain the priority of the activity in terms of a numerical value.

    8. Mapped Field: โ€œDescriptionโ€, Data Type: โ€œstringโ€. This mapped field will contain the description of the activity.

    9. Mapped Field: โ€œEmailTypeโ€, Data Type: โ€œstringโ€. This mapped field will contain the description of the type of email e.g. Marketing email.

  • After all fields are defined, the Field Mapping section will be as per the image below.

  • To expand the โ€œEventsโ€ section, click on the โ€œEventsโ€ arrow. In this section, the users define the events that may be triggered during the execution of the Flow component.

  • When a Flow component is created, its four (4) predefined Events are displayed in this section:

    1. โ€œSuccessโ€

    2. โ€œErrorโ€

    3. โ€œWasDisabledโ€

    4. โ€œAlreadyRunningโ€

  • To create a new โ€œEventโ€, click the [+ Event] button.

  • The Event box displays. It is enabled by default.

  • To define the Event:

    1. Enter the Event name to be displayed.

    2. Enter the Event name for the platform.

  • To associate more Events with this Flow component, create the following additional events.

    1. โ€œSentโ€: This Event is triggered when the email is sent.

    2. โ€œOpenedโ€: This Event is triggered when the email is opened.

    3. โ€œBouncedโ€: This Event is triggered if the email bounces back i.e. it is not delivered.

    4. โ€œLinkClickedโ€: This Event is triggered when the link in the email is clicked. If a link is provided in the email and the user clicks it, the Event will trigger the Flow component connected to it in the Flow.

  • To configure the icon for this Flow component, click the โ€œLangstackโ€ icon on the right-hand side.

  • A dialog box displays. To select the image to load as the Flow component icon, click on the โ€œLangstackโ€ icon or โ€œUpload iconโ€ button. In this exercise, the Mail icon is selected. (user can choose any image). To save the image, click the [Save] button.

  • The new icon displays.

  • To view the predefined variables for the Flow component, go to the โ€œVariablesโ€ tab. Two (2) variables are already defined to store the values entered by the user in defining the Flow component Mapped Fields.

    1. Variable Name: โ€œSourceโ€, Data Type: โ€œJXPFlowAppActivityโ€. This variable contains a number of elements relevant to the Flow component activity in a Flow that hold a certain value.

    2. Variable Name: โ€œMappedFieldsโ€, Data Type: โ€œjsonโ€. Mapped fields contain the values in Json format.

  • To create a new โ€œTarget Entityโ€, go to the โ€œTarget Entitiesโ€ tab and click the [+ Target entity] button.

  • To define the target entity, select โ€œUserName_Acc_Activitiesโ€ from the drop-down menu. The created record with this Flow component will be stored in this entity.

  • To define a sequence of Actions to create an entity record in the target entity, go to the โ€œCodeโ€ tab. To create a new โ€œAction boxโ€, click the [+ Action box] button.

  • Label the Action box as โ€œcreate anniversary email recordโ€. In this โ€œAction boxโ€, the necessary actions will be added and configured to create an anniversary email record for the customer.

  • To define the variables to be used in the โ€œAction boxโ€, expand the โ€œAction boxโ€ and go to the โ€œVariablesโ€ tab. To create a new variable to store values, click the [+ Variable] button.

  • To load the records from the entity โ€œUserName_Acc_customersโ€ into a variable, define the variable as follows:

    1. Variable Name: โ€œCustomerโ€

    2. Data Type: โ€œUserName_Acc_customersโ€

  • To add Actions, go to the โ€œCodeโ€ tab in the Action box to add Actions.

  • To load the entity record into the variable โ€œCustomerโ€, add and define this first Action as follows:

    1. Select Action as โ€œLoad Entity recordโ€.

    2. From the drop down menu, select the variable โ€œCustomerโ€. The entity record will be loaded into the variable โ€œCustomerโ€.

    3. To configure the criteria settings, click the โ€œCriteria settingsโ€ icon.

  • To configure the settings for how the records of the entity will be loaded into the variable, in the โ€œLoad Entity recordโ€ Action criteria settings, define the following fields:

    1. Select โ€œOrder byโ€ as โ€œCustomer_IDโ€. The records will be displayed by ordering the โ€œCustomer_IDโ€ field.

    2. Sort in โ€œAscendingโ€ order. The records will be loaded in ascending order.

    3. Create a new โ€œMatch keyโ€ by clicking the [+ Match key] button.

  • Define the match key as follows:

    1. Select the field โ€œCustomer_IDโ€ from the drop down menu. This match key maps the โ€œCustomer_IDโ€ field in the entity to the field โ€œCustomerIDโ€ in the โ€œMapped Fieldsโ€.

    2. Select the source as Variables>MappedFields>CustomerID>toGUID(). It is displayed as โ€œMappedFields.CustomerID.toGUID()โ€. The value of the โ€œCustomerIDโ€ provided in the mapped field of the Flow component by the user will be aligned with the โ€œCustomer_IDโ€ field (after conversion from Json to GUID) in the entity.

    3. Click the [Save] button.

  • To check if the record is loaded, add another Action and define it as follows:

    1. Select Action as โ€œCondition actionโ€.

    2. Enter the description as โ€œcheck if the record is loadedโ€.

  • To define the variables to be used in the โ€œCondition actionโ€, expand the โ€œCondition actionโ€ and go to the โ€œVariablesโ€ tab. Create two (2) variables.

  • To convert the record in the Customer variable into Json before triggering the Flow component activity, define the first variable as follows:

    1. Variable Name: โ€œJSโ€

    2. Data Type: โ€œJsonโ€

  • To update the values of the record fields to be loaded into the entity โ€œUserName_Acc_Activitiesโ€, define the second variable as follows:

    1. Variable Name: โ€œCustomerActivityโ€

    2. Data Type: โ€œUserName_Acc_Activitiesโ€

  • To define the criteria for this action, go to the โ€œCriteriaโ€ tab. To verify if the record is loaded, add and define a Criteria bar as follows:

    1. Select Variables>Customer. It is displayed as โ€œCustomerโ€.

    2. Select the Operator as โ€œIs Setโ€.

  • To define the actions in case the criteria returns a True value, go to the Code tab>On True section.

  • To define a sequence of actions to create an email activity record, define a Group action as follows:

    1. Select Action as โ€œGroup actionโ€. The actions defined within a Group action are treated as a group. When the Group action is changed in the position or copied, the changes are applied to all the actions defined within the group.

    2. Add the description as โ€œcreate an email activityโ€. This action contains a sequence of actions to create an email activity and update it in the โ€œUserName_Acc_Activitiesโ€ entity.

  • To create a new Action in the Group action, click the (+) button in the Group action. To update the values of the new record, add nine (9) Actions in the Group action by clicking the (+) button.

  • To update the โ€œActivity_AssignedToโ€ field of the record with the value from the mapped field โ€œAssignedToโ€ (defined in the Details>Field Mapping section), define the first Action as follows:

    1. Select Action as โ€œUpdate Variableโ€.

    2. Select Target variable as CustomerActivity>Activity_AssignedTo. It is displayed as โ€œCustomerActivity.Activity_AssignedToโ€.

    3. Select Value as Variables>MappedFields>AssignedTo. It is displayed as โ€œMappedFields.AssignedToโ€.

  • To update the โ€œActivity_CreatedByโ€ field of the record with the text โ€œActivityEmailSender Flow componentโ€, define the second Action as follows:

    1. Select Action as โ€œUpdate Variableโ€.

    2. Select Target variable as CustomerActivity>Activity_CreatedBy. It is displayed as โ€œCustomerActivity.Activity_CreatedByโ€.

    3. Type Value as โ€œActivityEmailSender Flow componentโ€ and press Enter. It will display in a blue bubble.

  • To update the โ€œActivity_DateTimeโ€ field of the record with the current date, define the third Action as follows:

    1. Select Action as โ€œUpdate Variableโ€.

    2. Select Target variable as CustomerActivity>Activity_DateTime. It is displayed as โ€œCustomerActivity.DateTimeโ€.

    3. Select Value as Functions>DateTime>Now(). It is displayed as โ€œDateTime.Now()โ€.

  • To update the โ€œActivity_Descriptionโ€ field of the record with the value from the mapped field โ€œDescriptionโ€ (defined in the Details>Field Mapping section), define the fourth Action as follows. (The value in this field is entered as a string by the user in the Flow component.)

    1. Select Action as โ€œUpdate Variableโ€.

    2. Select Target variable as CustomerActivity>Activity_Description. It is displayed as โ€œCustomerActivity.Activity_Descriptionโ€.

    3. Select Value as Variables>MappedFields>Description. It is displayed as โ€œMappedFields.Descriptionโ€.

  • To update the โ€œActivity_Priorityโ€ field of the record with the value from the mapped field โ€œPriorityโ€ (defined in the Details>Field Mapping section), define the fifth Action as follows.

    1. Select Action as โ€œUpdate Variableโ€.

    2. Select Target variable as CustomerActivity>Activity_Priority. It is displayed as โ€œCustomerActivity.Activity_Priorityโ€.

    3. Select Value as variables>MappedFields>Priority>toInteger(). It is displayed as โ€œMappedFields.Priority.toInteger()โ€. (The value is entered as a string by the user and converted to Integer before creating the record.)

  • To update the โ€œActivity_Typeโ€ field of the record with the value from the mapped field โ€œEmailTypeโ€ (defined in the Details>Field Mapping section), define the sixth Action as follows. The value is entered as a string by the user in the Flow component.

    1. Select Action as โ€œUpdate Variableโ€.

    2. Select Target variable as CustomerActivity>Activity_Type. It is displayed as โ€œCustomerActivity.Activity_Typeโ€.

    3. Select Value as Variables>MappedFields>EmailType. It is displayed as โ€œMappedFields.EmailTypeโ€.

  • To update the โ€œActivity_Statusโ€ field with details including the customer email and the type of email sent, define the seventh Action as follows:

    1. Select Action as โ€œUpdate Variableโ€.

    2. Select Target variable as CustomerActivity>Activity_Status. It is displayed as โ€œCustomerActivity.Activity_Statusโ€.

    3. In the Value, define two (2) values that together display as : โ€œEmail sent to the customer emailโ€ โ€œCustomer.Emailโ€. For example, the email sent to customer email address โ€œ[email protected]โ€, it will be displayed in the entity as โ€œEmail sent to the customer email [email protected]โ€.โ€

      1. First type constant text as โ€œEmail sent to the customer email โ€ and press Enter. It is displayed in a blue bubble.

      2. In the same field, select Variables>Customer>Email. It is displayed as โ€œCustomer.Emailโ€.

  • To update the โ€œCustomer_IDโ€ field of the record with the value from the mapped field โ€œCustomerIDโ€ (defined in the Details>Field Mapping section), define the eighth Action as follows. (The value is entered as a string by the user in the Flow component and converted to GUID before creating the record in the entity.)

    1. Select Action as โ€œUpdate Variableโ€.

    2. Select Target variable as CustomerActivity>Customer_ID. It is displayed as โ€œCustomerActivity.Customer_IDโ€.

    3. Select Value as Variables>MappedFields>CustomerID>toGUID(). It is displayed as โ€œMappedFields.CustomerID>toGUID()โ€. The value is entered as a string by the user in the Flow component and converted to GUID before creating the record in the entity.

  • To create the record into the โ€œUserName_Acc_Activitiesโ€ entity and get the โ€œJXPResponseโ€ when the entity record is created, define the last Action in the Group action as follows:

    1. Select Action as โ€œCreate Entity recordโ€.

    2. Click [+] and add a variable named โ€œResultโ€. This variable is of JXPResponse data type and is displayed in the โ€œVariablesโ€ tab of the โ€œAction boxโ€. This variable will contain the response to display when the created record is loaded into the target entity.

    3. Select Value as โ€œCustomerActivityโ€. This variable contains the values of the entity fields updated in the โ€œGroup actionโ€.

  • To update the customer entity record into a json variable before triggering the Flow component Event, add another Action by clicking the (+) button in the โ€œAction boxโ€ after the โ€œGroup actionโ€ (within the โ€œOn Trueโ€ section).

  • To update the target variable โ€œJSโ€ with details in the Customer variable,define the Action as follows:

    1. Select Action as โ€œUpdate Variableโ€.

    2. Select Target variable as โ€œJSโ€.

    3. Select Value as Variables>Customer>toJson(). It is displayed as โ€œCustomer.toJson()โ€.

  • To trigger the Flow component event with an event Sent, add the last Action as follows:

    1. Select Action as โ€œTrigger Flow component eventโ€.

    2. Select JXPFlowAppActivity as โ€œSourceโ€.

    3. Enter the Event name as โ€œSentโ€.

    4. Select Details json as โ€œJSโ€ (Variables>JS).

  • To save the Flow component, click the [Save] button.

  • To publish the Flow component, click the [Publish] button.

  • To enable the Flow component, in the Details tab click the toggle button to set it as โ€œEnabledโ€.

Last updated