Skip to main content
Version: 8.3

Customize marketing campaigns

Level: advanced

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 are executed automatically based on predefined rules and timelines. Learn more: Marketing campaigns (user documentation).

Use the Campaigns section to set up a campaign. To set up campaign flow diagrams, use the following campaign elements:

Campaign element calls depend on the setting and their position in the campaign flow diagram. The elements that are executed first are Adding event audience and Exit from campaign. They define the audience content for the current step. Campaign supports the following call types:

  • Synchronous call. Executed according to the order specified in the flow diagram. 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 campaign element, is finished.

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,
Terrasoft.Configuration.BulkEmailCampaignElement

C#

The class that implements the Marketing 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,
Terrasoft.Configuration.CampaignEventEntityHandler

C#

The class that implements the Add from event campaign element.

Terrasoft.Configuration.CampaignStartSignalElement,
Terrasoft.Configuration.CampaignLandingEntityHandler

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,
Terrasoft.Configuration.CampaignLandingEntityHandler

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:

  1. Create a public sealed handler class.

  2. Specify the CampaignEventHandlerBase class as the parent class.

  3. 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.

  4. Implement a default accessible constructor in the class. The class does not need to be generalized.

  5. Compile the configuration. Instructions: Compile the configuration.

  6. Update the configuration library.

  7. 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:

    1. Recompile the configuration.
    2. Clear the storage that contains cached data.
    3. Clear the application pool.
    4. Restart the IIS.

Implement a custom flow for campaign element

A flow is a transition between campaign elements that governs how participants move through the campaign. Flows define the sequence, conditions, and timing of transitions between steps in a marketing campaign. They are essential for directing the path of each participant and ensuring that the campaign logic functions correctly. Learn more: Transitions between campaign elements (user documentation).

Detailed example: Implement a custom flow for a campaign element.

View a list of classes that lets you implement a custom flow for 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)