Lynn Proactive
Outbound marketing is the set of strategies that seeks to draw the attention of your users to generate business opportunities in a direct way. It uses unidirectional communication, without requiring an immediate response from the user. Its main purpose is to impact the greatest number of people regardless of whether they are actually target users.
The Lynn Proactive module is responsible for modeling, managing and controlling the behavior of the platform's OutBound interactions. This module offers a powerful tool that improves the customer service and provider experience, thanks to the omnicanality that the platform handles and the creation of cognitive self-care flows.
Lynn Proactive operates using a Contact that can be obtained from previous customer interactions with the platform or through massive imports (only for the WhatsApp channel), and a Campaign that is responsible for defining the contact strategy. Each message sent to a Contact through a Campaign is represented in the platform as a Campaign Record.
Definitions
Campaign
-
The Campaign belongs to a Tenant.
-
A Tenant can have multiple campaigns (five for the current Preview version)
-
Identified by a Name, in addition to its ID for API administration.
-
Campaign Types:
-
Simple Message: Send a message to the customer and wait for its response to create a session.
-
Multiple Message: Send a message to the customer and automatically create a session. Note. WhatsApp channel does not support Multiple Message for messages sent through templates.
-
-
Execution Modes:
-
Manual: The start and stop of the campaign require the action of an administrator.
-
Scheduled: The start and stop of the campaign will be automatically performed according to the configured start and end date. During this period, the campaign will behave as AlwaysOn.
-
AlwaysOn: The campaign will always be in a started state. Campaign records created will be automatically processed. This execution mode supports scheduled
-
-
Category: Used to group multiple campaigns. This parameter becomes more relevant when configuring contacts in blacklist.
-
Validity: Determines the validity date of the campaign. After this date:
-
the execution of the campaign will be stopped
-
the customer's reaction to the campaign will be discarded
-
new campaign records will not be added.
-
-
Validity in hours: Determines the time within which the customer's reaction will be accepted after a proactive contact. After this time the reaction will be discarded and the session will start using the default Tenant intention.
-
Intention to execute: Intention to be executed when the customer reacts to a proactive message. It can be any intention associated with the Tenant.
Contact
-
The contact belongs to the Tenant
-
It is the representation of a client in a channel (WhatsApp, Teams, Facebook, etc.)
-
A contact can be used by multiple campaigns
-
Channel NO WhatsApp contacts, can only be obtained by Lynn from the interaction with the customer
-
Channel WhatsApp contacts can be imported in bulk
-
Contacts can be added to a blacklist (DND) which can refer to a campaign, or a group of campaigns identified by a common category.
Campaign Registration
-
The registration belongs to the campaign
-
It represents a message processed by a campaign associated with a contact at a given time.
-
Types of registration:
-
External: The result of processing the registration is the sending of a message to the customer.
-
Internal: The result of processing the registration is to start a Lynn session that has entities obtained at the time of creating the registration. This behavior allows to solve complex use cases, making use of the functionalities offered by self-service flows.
-
-
It has a reference to the contact.
-
States:
- Ready: The record will be processed when the campaign is executed.
- Sent: Record processed, sent to the customer.
- Confirmed: State when the user reacts to the proactive message.
- Error: An error occurred while processing the campaign record.
- Expired: When the record is scheduled and attempted to be executed after the scheduled date.
- Dnd: when executing the record, the contact is on Black List for the campaign.
- Cancelled: when the campaign record is cancelled from the self-service flow.
-
Additional Information:
- For WhatsApp channel: contains the information necessary to hire the client through a WhatsApp template. These parameters vary according to the provider.
- For non-WhatsApp channels: contains the message to be sent to the customer.
-
Data: Contains the name and value of the entities that will be added at the time of creating the record.
-
MTM Data: Contains the list of parameters that will be sent in the MTM template. Only applies to the WhatsApp channel.
-
MTM Header: Contains the list of parameters that will be sent in the MTM header. Only applies to the WhatsApp channel. The structure of these parameters varies according to the provider.
-
MTM Body: Contains the list of parameters that will be sent in the body of the MTM template. Only applies to the WhatsApp channel. The structure of these parameters varies according to the provider.
-
Records the result of the message sending action.
-
Can be reused by changing its status to Ready, maintaining the history of previous executions.
Canals that support Outbound**
All channels, except the Widget, can be used by Lynn Proactive.
Note. The Widget requires access (via Web) and authentication of the user, so it would be impossible to deliver a message when the user is offline.
Architecture
Components
Outbound Manager
The Outbound Manager is an internal component associated with the Lynn Core that is responsible for the administration, monitoring and execution of Campaigns. A Campaign is the logical representation of a proactive communication strategy towards a group of Contacts. Administrator or Editor permission (with special permissions assigned to a campaign) is required to manage this component.
The Outbound Manager performs the following functions:
-
Contact administration.
-
Establish the relationship between a contact and a channel.
-
Establish the relationship between a contact and a campaign
-
Start, stop and monitor campaigns.
-
Establishes communication with the Channel Gateway to make contact with the customer effective.
-
Monitoring and execution of campaign records.
-
Update the status of campaign records.
-
Outbound Importer
Internal component associated with the Lynn Core responsible for loading and importing Contacts and generating Campaign Records.
The Outbond Importer performs the following functions:
-
Import contacts of WhatsApp type.
-
Generate campaign records from existing contacts.
-
Generate campaign records for the WhatsApp channel, starting from a custom import using a .csv file.
The Outbound Sender
Is an internal component associated with the Messaging Gateway that is responsible for sending messages received from the Outbound Manager, making use of the connection interface with the different integrated channels. This communication is effective thanks to the contact information associated with the campaign record.
The Outbound Sender performs the following functions:
-
Collect from the communication channel the information necessary for creating a contact.
-
Process the messages coming from the Outbound Manager and deliver them to the client according to the communication channel.
-
Notify the Outbound Manager of the result of sending the messages through the different channels.
Views
Campaign View
It is the main view that allows the management of the Lynn Proactive module. Administrator permission or Editor permission (with permissions on at least one campaign) is required to access this view.
Note. Editors will only have visibility on campaigns to which they have administration permission.
The view is composed of:
-
Access to the Contacts View.
-
Access to the Campaign Creation Form.
-
Campaign list
-
Campaign Actions:
- Execute the campaign. Only available for campaigns whose validity date is greater than the current one and the execution mode is Manual.
- Access to the Campaign Records view.
- Export contact template. Allows selecting the available contacts according to their channel and defining the message that will be sent proactively. The result of this process is a file in .cpg format with the necessary information to generate campaign records. (See Plantilla_de_Contactos.cpg)
- Create campaign records from the import of the .cpg file (See Plantilla_de_Contactos.cpg)
- Bulk import of WhatsApp contacts and automatic creation of campaign records. This import requires a .csv arc (See WhatsApp_Import.csv) with the contact information and a json (See Configuración_plantilla_HSM.json) configuration to map the structure of the csv.
- Add permissions to the Tenant Editors to manage the campaign. Only visible to Tenant administrators.
- Delete the campaign. Only visible to Tenant administrators.
-
Contact View
This view allows to manage the Tenant's contacts.
The view is composed of:
-
Access to import WhatsApp contacts from a .cpg file (See Contactos_WhatsApp.cpg)
-
Add a contact. This functionality only allows to add contacts of type WhatsApp or Voice.
-
Contacts list:
-
Actions per contact
-
Edit:
-
Non-WhatsApp contacts: Only allows to update the contact's name.
-
WhatsApp/Voice contacts: Allows to update the contact's name and phone number.
-
-
Delete: Allows to delete a contact.
-
-
Campaign Record View
This view allows managing the campaign records.
The view is composed of:
-
Add a campaign record
-
List of records:
-
Actions per record
-
Logs: Shows the result of the record execution. It records the ID obtained from the channel through which the message was sent and in case of an error occurring in the process, the detail is recorded. In case of reusing the record, a new log is generated.
-
Edit: Allows editing the information associated to the record. The reference to the contact can only be changed if the record has not been processed.
-
Delete: Allows deleting a record.
-
-
Available actions in the diagram
In the Tenant diagram there is a set of actions under the Outbound category, allowing to interact with the Lynn Proactive module from the self-service flow.
The available actions are:
-
Campaign Contact Manager: Creates a contact from the channel through which the session was initiated. If the contact exists, it is updated. Returns the Contact ID, this parameter is mandatory to generate a campaign record from the flow.
-
Configuration parameters:
-
CONTACT_NAME_EXPRESSION: String Expression to get the contact name.
-
UPDATE_CONTACT_NAME: Boolean to indicate if the contact name is updated each time the customer passes through this action. By default it is set to NO.
-
CONTACT_IDENTIFIER_ENTITY: Entity where the ID of the created/updated contact is stored.
-
-
-
Campaign WhatsApp/Voice Contact Manager: Create a unique contact for WhatsApp and Voice channels. It has the same functionality and behavior as the Campaign Contact Manager action.
Configuration parameters:
-
CONTACT_NAME_EXPRESSION: String Expression to get the contact name.
- CONTACT_NUMBER_EXPRESSION: String Expression to get the contact number.
- UPDATE_CONTACT_NAME: Boolean to indicate whether the contact name is updated whenever the customer goes through this action. By default, this parameter is set to NO.
-
CONTACT_IDENTIFIER_ENTITY: String Entity to return the ID of the created/updated contact.
-
Administration of the Campaign Records: Create a campaign record.
Parameters Configuration:
-
CAMPAIGN_ID: Reference to the campaign ID. Each action can create records associated to a single campaign.
-
CONTACT_IDENTIFIER_ENTITY: Resultant Entity of the Campaign Contact Manager action, which contains the contact identifier.
-
SCHEDULE_CONTACT_ENTITY: String Expression to define a date and time to execute the campaign record. This field will only take effect if the campaign is in AlwaysOn mode or within the active period of a campaign in Scheduled mode. Expected date format: dd/MM/yyyy HH:mm:ss
-
IS_INTERNAL: Boolean Expression to determine if the campaign record will be processed as internal or external.
-
ALLOW_DND_CONTACT: Boolean indicating if the campaign record will be created despite the contact being on the Blacklist. By default, this parameter is set to NO.
-
MULTIPLE_ACTIVE_RECORDS: Boolean indicating if a new record will be created everytime the user passes through this action and there is a previous record in the Ready state (YES), or if the existing record will be updated (NO). By default it is set to NO.
-
RECORD_ID_ENTITY: String Entity where the ID of the campaign record created/updated is returned.
-
**OPERATION_ENTITY: String Entity where the action performed on the campaign record is returned: NEW, UPDATE or ERROR.
-
Message Configuration by Channel
-
Non-WhatsAppd Channels: NEW, UPDATE or ERROR.
-
OUTBOUND_MESSAGE_EXPRESSION_NOMBRE_CANAL: String Expression to define the message to be delivered to the customer.
-
NOMBRE_CANAL_ADDITIONAL_DATA: Entity List to be associated with the campaign record. These entities will be available when the customer reacts to the pro-active contact, or in the execution of an internal record.
-
-
WhatsApp Channel: These data is pulled from the WhatsApp provider's platform. Its structure varies depending on the provider.
- TEMPLATE: Identifier or name of the configured and approved template on WhatsApp.
- NAMESPACE: Name of the workspace to which the template is associated.
- LOCALE: Language of the template.
- WHATSAPP_NUMBER: Number of the service to which the template is associated. It represents the provider according to the configuration of the channel.
- HSM_TYPE: Type of template to use: Text message (MTM) or multimedia message (MMT).
- HSM_MTM_DATA: String List to define the parameters that the MTM template will use and its position in the message. Each element is evaluated as an expression.
- HSM_MMT_HEADER_DATA: String List to define the parameters that the MMT template will use in the header of the message. Each element is evaluated as an expression.
- HSM_MMT_BODY_DATA: String List to define the parameters that the MMT template will use in the body of the message. Each element is evaluated as an expression.
-
Voice Channel
- VOICE_ADDITIONAL_DATA: Entity List that will be associated to the campaign record. These entities will be available when the customer reacts to the pro-active contact, or in the execution of an internal registration.
-
-
-
-
Campaign DND Manager: Add or remove a contact from the blacklist for a campaign
-
Configuration Parameters:
- CAMPAIGN_ID: Reference to the campaign
- CONTACT_IDENTIFIER_ENTITY: Entity to get the contact identifier
- DND_CONTACT_EXPRESSION: Boolean Expression to define if the contact will be (true) or not (false) in the blacklist.
-
-
Campaign DND Manager By Category: Add or remove a contact from the blacklist for a group of campaigns belonging to the same category.
-
Configuration parameters:
-
CAMPAIGN_CATEGORY: Reference to the category
-
CONTACT_IDENTIFIER_ENTITY: entity to obtain the contact's identifier
-
DND_CONTACT_EXPRESSION: Boolean Expression to define if the contact will be (true) or not (false) in the blacklist.
-
-
-
Campaign DND Validator: Validates if a contact is in the blacklist for a given campaign.
-
Configuration parameters:
-
CONTACT_IDENTIFIER_ENTITY: entity to obtain the contact's identifier
-
CAMPAIGN_ID:Reference to the campaign.
-
DND_VALIDATION_RESULT: Boolean Entity that returns if the contact is (true) or not (false) in blacklist.
-
-
-
Campaign DND Validator By Category: Check if a contact is blacklisted for a certain category.
-
Configuration parameters:
-
CONTACT_IDENTIFIER_ENTITY: entity to obtain the contact's identifier
-
CAMPAIGN_CATEGORY: Reference to the campaign.
-
DND_VALIDATION_RESULT: Boolean Entity that returns if the contact is (true) or not (false) in blacklist.
-
-
-
List Campaign Records By Contact: Return a list of records in Ready state, given a campaign and a contact.
-
Configuration parameters:
-
CONTACT_IDENTIFIER_ENTITY: entity to obtain the contact's identifier
-
CAMPAIGN_ID: Reference to the campaign..
-
RECORDS_RESULT: String Entity It contains a list of records in JSON Array format.
records:[{CampaignCategory:Test,CampaignId:a47be8af-d40d-452c-9a3e-bcf668fcd1dc,RecordId:c02c916c-0d41-4ed4-933b-4c029d7296d9,ScheduledStartDate:,CampaignType:1,CampaignName:DemoOutboundTest}]
-
-
-
Cancel Campaign Records By Contact: Delete a campaign record that is in Ready status.
-
Configuration parameters:
-
CONTACT_IDENTIFIER_ENTITY: entity to obtain the contact's identifier
-
CAMPAIGN_RECORD_ID: String Expression To define the ID of the campaign record to be deleted.
-
CANCEL_RESULT: Boolean Entity Returns if the record was deleted (true) or not (false).
-
-