Customize marketing campaigns
A marketing campaign is a marketing workflow that automates interactions with a specific audience over a defined period to achieve a particular goal. Campaigns in Creatio are logic-driven processes that orchestrate how contacts are nurtured, notified, and engaged using multiple communication channels.
Campaigns are configured using the Campaign Designer, a no-code tool that enables the setup of multistep email threads, event triggers, conditional flows, and engagement tracking. These campaigns run automatically based on predefined rules and timelines. Learn more: Marketing campaigns (user documentation).
Campaign flow diagrams include campaign elements connected by flows. Each element performs a specific function in the campaign logic, such as adding participants, sending communications, updating data, or controlling the sequence of campaign steps.
A flow is a transition between campaign elements that determines how participants move through the campaign.
Flows define:
- the sequence of campaign steps
- conditions for transitions
- timing of campaign actions
They ensure that campaign participants follow the correct path according to the campaign logic. Learn more: Transitions between campaign elements (user documentation).
Use the Campaigns section to configure campaigns and design campaign flow diagrams. The Campaign Designer supports the following types of campaign elements and flows:
- Out-of-the-box elements and flows – predefined elements and transitions available in the platform. They define standard campaign actions and the sequence of steps. Learn more: Campaign element reference, Transitions between campaign elements (user documentation).
- Custom elements and flows – developer-implemented components and transitions that extend the standard campaign functionality and enable custom campaign logic.
Campaign element execution depends on element configuration and position in the campaign flow diagram. Audience-related elements, such as Adding event audience, typically define the campaign participants at the beginning of the flow, while elements such as Exit from campaign determine when participants leave the campaign.
Campaign execution supports the following call types:
- Synchronous call — executed according to the order specified in the flow diagram. The transition to the next element occurs only after the current element finishes executing.
- Asynchronous call — waits for the execution of external systems, asynchronous services, or user interactions. For example, waiting for a contact to click a link in a Bulk email element.
Implement a custom campaign element
Detailed example: Implement a custom campaign element.
View a list of classes that lets you implement a custom campaign element in the table below.
Class | Type | Description |
|---|---|---|
Terrasoft.manager.ProcessFlowElementSchema | JS | The base class for process flow element schemas. |
Terrasoft.manager.CampaignBaseCommunicationSchema | JS | The base schema class for campaign communication elements. |
Terrasoft.manager.CampaignBaseAudienceSchema | JS | The base schema class for campaign audience elements. |
BaseCampaignSchemaElementPage | JS | The base schema of the element property panel. Each custom element property panel extends the base schema. |
Terrasoft.manager.CampaignSchemaManager | JS | The manager class that handles campaign schema definitions and initialization. |
Terrasoft.Core.Campaign.CampaignSchemaElement | C# | The base class for campaign element definitions in a campaign schema. |
Terrasoft.Configuration.MarketingEmailElement, | C# | The class that implements the Bulk email element class. |
Terrasoft.Configuration.AddCampaignParticipantElement | C# | The class that implements the Adding event audience campaign element. |
Terrasoft.Configuration.CampaignStartSignalElement | C# | The class that implements the Triggered adding campaign elements. |
Terrasoft.Configuration.CampaignStartSignalElement, | C# | The class that implements the Add from event campaign element. |
Terrasoft.Configuration.CampaignStartSignalElement, | C# | The class that implements the Add from landing campaign element. |
Terrasoft.Configuration.AddFromWebPageSignalElement | C# | The class that implements the Add from web page campaign element. |
Terrasoft.Configuration.CampaignWebPageElement | C# | The class that implements the Web page campaign element. |
Terrasoft.Configuration.EventConditionalTransitionElement | C# | The class that implements the Add to event campaign element. |
Terrasoft.Configuration.CampaignAddObjectElement | C# | The class that implements the Add data campaign element. |
Terrasoft.Configuration.CampaignUpdateObjectElement | C# | The class that implements the Modify data campaign element. |
Terrasoft.Configuration.ExcludeCampaignAudienceElement | C# | The class that implements the Eliminate duplicates campaign element. |
Terrasoft.Configuration.CampaignSplitGatewayElement | C# | The class that implements the Random split campaign element. |
Terrasoft.Configuration.CampaignStartSignalElement, | C# | The class that implements the Landing page campaign element. |
Terrasoft.Configuration.CampaignTimerElement | C# | The class that implements the Timer campaign element. |
Terrasoft.Configuration.ExitFromCampaignElement | C# | The class that implements the Exit from campaign element class. |
Terrasoft.Core.Campaign.CampaignProcessFlowElement | C# | The base class of the executable campaign element. |
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 sealedhandler class. -
Specify the
CampaignEventHandlerBaseclass as the parent class. -
Describe event handler signatures in the class. To do this, implement corresponding interfaces listed in the table below.
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
AddValidationInfo(string)method.IOnCampaignCopy
Contains a method that is called after the campaign is copied.
-
Implement a default accessible constructor in the class. The class does not need to be generalized.
-
Compile the configuration. Instructions: Compile the configuration.
-
Update the configuration library.
-
Include the created types in this library. Otherwise, the "Parameter 'type' cannot be null" error might occur when saving the campaign. To fix the error:
- Recompile the configuration.
- Clear the storage that contains cached data.
- Clear the application pool.
- Restart the IIS.
Implement a custom flow for campaign element
Use custom flows to extend the default campaign logic and implement additional transition conditions between campaign elements.
Detailed example: Implement a custom flow for a campaign element.
View the classes you can use to implement a custom flow for a campaign element in the table below.
Class | Type | Description |
|---|---|---|
Terrasoft.Configuration.SequenceFlowElement | C# | The class that implements an unconditional flow. |
Terrasoft.Configuration.ConditionalSequenceFlowElement | C# | The class that implements a conditional flow. |
Terrasoft.Configuration.EmailConditionalTransitionElement | C# | The class that implements a response-based flow. |
See also
Marketing campaigns (user documentation)