Campaign elements
Glossary Item Box
Introduction
Marketing campaign diagrams are created in a visual campaign designer in the [Campaigns] section. The campaign diagram consists of campaign elements and transitions (flows).
Once the campaign is launched, the flow-schema of the campaign is created. The campaign elements are converted to a campaign execution chain and the start time is calculated for each element. The flow-schema can be significantly different from the visual campaign diagram in the designer.
Campaign elements can be synchronous and asynchronous.
Synchronous elements are executed according to the order specified in the flow-schema. The transition to the subsequent elements is performed once the synchronous element is executed. The execution flow is blocked and waits for the operation to complete.
Asynchronous elements wait for the finished execution of certain external systems, resources, asynchronous services, or user reactions (e.g., clicking a link in an email).
Their position in the flow-schema is determined by their element type. The [Add from folder] and [Exit according to folder conditions] elements are executed first. These elements are used to add or remove participants from the campaign audience. Campaign participants are moving from one element to the other through the flows. If the flow has certain configured conditions, the system filters the participants based on these conditions and determines the execution time of the subsequent element.
The mechanism for planning the next campaign launch
The following is the algorithm for for planning the next campaign launch:
1. The time of the next launch of an element is determined by the configured delay.
- The “In a day” option is selected. The date and time of the next execution of this element is calculated with the help of the following formula:
Date and time of execution = current date and time + N minutes / hour,
where N is the value of the [Number of days] field, populated by the user.
- The “Few days” option is selected. The next execution of this element is performed with the help of the following formula:
Date = [current date+ N days],
where N is the value of the [Number of days] field, populated by the user.
Execution time = time specified by the user.
- The “No, execute after the previous one” option is selected. The next execution of this element is performed at the time of the next launch of the campaign.
2. According to the variant described in paragraph 1, the launch time for each element of the campaign scheme is calculated.
3. Upon comparing all values, the closest launch time selected and set as the campaign launch time.
4. Forming a list of elements, which will be executed upon next launch. The list contains all elements, the launch time of which is the same as the campaign launch time.
Main campaign element classes
JavaScript classes
The base element schema class is ProcessFlowElementSchema. The CampaignBaseCommunicationSchema is the parent class for all elements in the [Communications] group. The CampaignBaseAudienceSchema is the parent class for the [Audience] group of elements.
When creating an element in a new group of elements, it is recommended to implement the base schema of the element first, and then inherit each element from it.
Each schema corresponds to the schema of the element properties edit page. The base edit page schema is BaseCampaignSchemaElementPage. Each new element page extends the base page.
The CampaignSchemaManager class manages the schemas of elements available in the system. It inherits the main functionality of the BaseSchemaManager class.
C# classes
Simple element classes
CampaignSchemaElement – base class. All other elements are inherited from this class.
SequenceFlowElement – base class for the [Sequence flow] element.
ConditionSequenceFlowElement – base class for the [Condition flow] element.
EmailConditionalTransitionElement – transition element class by response.
AddCampaignParticipantElement – add audience (participants) element class.
ExitFromCampaignElement – the class of the audience exit element.
MarketingEmailElement – the class of the Email element.
Executable element classes
CampaignProcessFlowElement – base class. All other executable elements are inherited from this class.
AddCampaignAudienceElement – audience element class.
ExcludeCampaignAudienceElement – the class of the audience exit element.
BulkEmailCampaignElement – the class of the Email element.