Customize marketing campaigns
The functionality is relevant to Classic UI.
A marketing campaign (campaign) is a set of activities unified by a single concept and aimed to achieve a marketing goal. A campaign is conducted within a certain period for a specific target audience. Campaigns are available in the Marketing Creatio product lineup.
Use campaign to execute the following actions:
- Nurture customer needs.
- Inform audiences (campaign participants) about campaign activities.
- Engage participants.
- Engage with interested contacts.
Learn more: Marketing campaigns (user documentation).
You can set up a campaign diagram in the Campaigns section. Campaign includes the following diagram components:
- elements
- flows between elements
- general settings
General procedure to set up a campaign:
- Create a campaign. Instructions: Add a campaign (user documentation).
- Set up the diagram. Instructions: Set up campaign diagram (user documentation).
- Launch the campaign.
As a result:
- The schema of the campaign execution flow will be created. The schema of the campaign execution flow may differ significantly from the visual campaign diagram in the designer.
- The elements will be converted into the schema of the campaign execution flow.
- Launch time will be calculated for each element.
You can schedule the next campaign launch. Instructions: Schedule the next campaign launch.
Campaign elements
When you create a campaign, its layout contains predefined elements.
Campaign diagram lets you use the following elements:
- Base elements. Learn more: Campaign element reference (user documentation).
- Custom elements. Instructions: Implement a custom campaign element.
The way to call campaign elements differs depending on the settings and determines their position in the campaign execution flow schema. The first elements to be executed are Adding event audience and Exit from campaign. They define the audience content for the current step. Campaign supports the following ways to call elements:
- Synchronous call. Executed according to the order specified in the flow schema. The flow to the next elements is performed after the element is executed. In this case, the flow between elements is blocked until the operation is completed.
- Asynchronous call. Wait until the execution of certain external systems, resources, asynchronous services, or user reactions (for example, clicking a link from the Marketing email element of a campaign) is finished.
Campaign element classes
Creatio implements campaign elements using JavaScript classes and C# classes.
Class | Class description |
---|---|
JavaScript classes | |
Terrasoft.manager.ProcessFlowElementSchema | The base class of the element schema. |
Terrasoft.manager.CampaignBaseCommunicationSchema | The parent class for all elements in the Communications group. |
Terrasoft.manager.CampaignBaseAudienceSchema | The parent class for all elements in the Audience group. |
Terrasoft.Configuration.BaseCampaignSchemaElementPage | The base schema of the element property panel. The element schema corresponds to the property panel schema. Each new element property panel extends the base schema. |
Terrasoft.manager.CampaignSchemaManager | Manages the schemas of elements available in Creatio. Inherits the functionality of the |
C# classes that implement simple campaign elements | |
Terrasoft.Core.Campaign.CampaignSchemaElement | The base class of the campaign schema element. Parent class for campaign schema elements. |
Terrasoft.Configuration.AddCampaignParticipantElement | The Adding event audience element class. |
Terrasoft.Configuration.ExitFromCampaignElement | The Exit from campaign element class. |
Terrasoft.Configuration.MarketingEmailElement | The Marketing email element class. |
Terrasoft.Configuration.EventConditionalTransitionElement | The Add from event element class. |
Terrasoft.Configuration.LandingConditionalTransitionElement | The Add from landing element class. |
C# classes that implement executable campaign elements | |
Terrasoft.Core.Campaign.CampaignProcessFlowElement | The base class of the executable campaign element. |
Terrasoft.Configuration.AddCampaignAudienceElement | The audience element class. |
Terrasoft.Configuration.ExcludeCampaignAudienceElement | The class of the audience exit element. |
Terrasoft.Configuration.BulkEmailCampaignElement | The Marketing email element class. |
JavaScript classes of campaign elements
Terrasoft.manager.ProcessFlowElementSchema
. The base class of the element schema.Terrasoft.manager.CampaignBaseCommunicationSchema
. The parent class for all elements in the Communications group.Terrasoft.manager.CampaignBaseAudienceSchema
. The parent class for all elements in the Audience group.Terrasoft.Configuration.BaseCampaignSchemaElementPage
. The base schema of the element property panel. The element schema corresponds to the property panel schema. Each new element property panel extends the base schema.Terrasoft.manager.CampaignSchemaManager
. Manages the schemas of elements available in Creatio. Inherits the functionality of theTerrasoft.manager.BaseSchemaManager
class.
C# classes of campaign elements
Types of C#-classes of campaign elements:
- C# classes of simple campaign elements.
- C# classes of executable campaign elements.
C# classes that implement simple campaign elements:
Terrasoft.Core.Campaign.CampaignSchemaElement
. The base class of the campaign schema element. Parent class for campaign schema elements.Terrasoft.Configuration.AddCampaignParticipantElement
. The Adding event audience element class.Terrasoft.Configuration.ExitFromCampaignElement
. The Exit from campaign element class.Terrasoft.Configuration.MarketingEmailElement
. The Marketing email element class.Terrasoft.Configuration.EventConditionalTransitionElement
. The Add from event element class.Terrasoft.Configuration.LandingConditionalTransitionElement
. The Add from landing element class.
C# classes that implement executable campaign elements:
Terrasoft.Core.Campaign.CampaignProcessFlowElement
. The base class of the executable campaign element.Terrasoft.Configuration.AddCampaignAudienceElement
. The audience element class.Terrasoft.Configuration.ExcludeCampaignAudienceElement
. The class of the audience exit element.Terrasoft.Configuration.BulkEmailCampaignElement
. The Marketing email element class.
Implement a custom campaign element
- Create a campaign element.
- Create a property panel for the campaign element.
- Add the element to the element area of the Campaign Designer.
- Create an executable element for the campaign element.
- Implement the business logic of the campaign element.
- Implement campaign event handling. Instructions: Event handler mechanism.
Detailed example: Implement a custom campaign element.
Event handler mechanism
Use event handler mechanism to implement campaign event handling. You can handle saving, copying, deleting, starting and stopping campaign events.
To implement campaign event handling:
- Create a
public sealed
handler class. - Specify the
CampaignEventHandlerBase
class as the parent class. - Describe event handler signatures in the class. To do this, implement corresponding interfaces.
- Implement a default accessible constructor in the class. The class does not need to be generalized.
Use the following interfaces to describe event handler signatures.
Interface | Interface description |
---|---|
IOnCampaignBeforeSave | Contains a method that is called before the campaign is saved. |
IOnCampaignAfterSave | Contains a method that is called after the campaign is saved. |
IOnCampaignDelete | Contains a method that is called before the campaign is deleted. |
IOnCampaignStart | Contains a method that is called before the campaign is started. |
IOnCampaignStop | Contains a method that is called before the campaign is stopped. |
IOnCampaignValidate | Contains a method that is called when the campaign is validated. When you implement the interface, we recommend saving errors to the campaign schema using the |
IOnCampaignCopy | Contains a method that is called after the campaign is copied. |
Use the following interfaces to describe event handler signatures:
IOnCampaignBeforeSave
. Contains a method that is called before the campaign is saved.IOnCampaignAfterSave
. Contains a method that is called after the campaign is saved.IOnCampaignDelete
. Contains a method that is called before the campaign is deleted.IOnCampaignStart
. Contains a method that is called before the campaign is started.IOnCampaignStop
. Contains a method that is called before the campaign is stopped.IOnCampaignValidate
. Contains a method that is called when the campaign is validated. When you implement the interface, we recommend saving errors to the campaign schema using theAddValidationInfo(string)
method.IOnCampaignCopy
. Contains a method that is called after the campaign is copied.
Make sure to update the configuration library after compilation and include the created types in this library. Otherwise, the Parameter 'type' cannot be null
error might occur when saving the campaign.
To fix the Parameter 'type' cannot be null
error:
- Recompile the project.
- Clear the storage that contains cached data.
- Clear the application pool.
- Restart the IIS.
Flows between campaign elements
Campaign participants are moving from one element to the other via flows. If the flow has certain conditions set up, Creatio filters the participants based on these conditions and determines the execution time of the subsequent element. Learn more: Transitions between campaign elements (user documentation).
Classes of flow between campaign elements
Class | Class description |
---|---|
Terrasoft.Configuration.SequenceFlowElement | Implements an unconditional flow. |
Terrasoft.Configuration.ConditionalSequenceFlowElement | Implements a conditional flow. |
Terrasoft.Configuration.EmailConditionalTransitionElement | Implements a response-based flow. |
C# classes that implement flow between campaign elements:
Terrasoft.Configuration.SequenceFlowElement
. Implements an unconditional flow.Terrasoft.Configuration.ConditionalSequenceFlowElement
. Implements a conditional flow.Terrasoft.Configuration.EmailConditionalTransitionElement
. Implements a response-based flow.
Implement a custom flow for a campaign element
- Create a flow schema for a campaign element.
- Create a flow property panel for a campaign element.
- Create an executable element for the campaign element flow.
- Implement the business logic of the flow for the campaign element.
- Implement the flow logic when the source is changed.
- Connect the flow logic.
Detailed example: Implement a custom flow for a campaign element.
Schedule the next campaign launch
-
Create a new campaign or open an existing campaign. Instructions: Add a campaign (user documentation).
-
Fill out the properties of the campaign.
Property
Property value
Start mode
at the specified time
Scheduled start date
date and, if necessary, time of the next campaign launch
-
Save the changes.
As a result:
-
The time when to launch the next element will be calculated. Performed depending on the settings for the time delay before the next element is run. Creatio uses formulas for calculation.
-
The time to launch the next campaign will be set. To do this, Creatio executes the following actions:
- Compare values of the element launch time.
- Select the closest campaign launch time based on the comparison.
- Set the selected value as the next campaign start time.
-
A list of elements will be generated to execute at the next campaign launch. The list includes all elements whose launch time is equal to the next campaign launch time.
Also, you can configure a time delay before the next element is executed. To do this:
-
Create a new campaign or open an existing campaign. Instructions: Add a campaign (user documentation).
-
Fill out the properties of the campaign.
Property
Property value
Enable delay before executing an element?
"Yes" for the specified period
Delay unit
"Days" or "Hours"
Quantity
required days (hours) of delay
Exact time
Select the Timer validity checkbox and specify the required start time
-
Save the changes.
View the element start options in the table below.
Staring option | Setup fields | ||
---|---|---|---|
Enable delay before executing an element? | Delay unit | Quantity | |
Without delay | No, execute after the previous one | Field not available | Field not available |
During the day | Yes, for specified time period | Hours | Specifies the delay in hours |
In a several days | Yes, for specified time period | Days | Specifies the delay in days |
View the formulas for calculating the next element start time for different start options in the table below.
Starting option | Formulas for calculating | |
---|---|---|
Date | Time | |
Without delay | Closest campaign launch date | Closest campaign launch time |
During the day | Current date | Current time + N minutes/hours |
In a several days | Current date + N days | User-specified time |
Where: N
is the value of Quantity field you specified.
See also
Add a campaign (user documentation)
Set up campaign diagram (user documentation)
Campaign element reference (user documentation)
Transitions between campaign elements (user documentation)