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

Campaign element groups

note

This functionality is available for Creatio 8.3.3 and later.

Since version 8.3.3, campaign elements in the Campaign Designer are organized into functional groups. Each group and element has a predefined index that determines its position in the Elements area of the Campaign Designer. This grouping helps organize the Elements area and makes it easier for users to find the required campaign elements.

Detailed example: Implement a custom campaign element.

The table below lists the out-of-the-box groups and standalone elements displayed in the Elements area of the Campaign Designer and shows their position in the panel, as well as the schemas that define them.

Group or standalone element

Index of group or element

Schema of group or element

Triggered entry

10

"CampaignTriggeredEntryGroupSchema" (CampaignTriggeredEntryGroupSchema code)

Add audience

20

"AddCampaignParticipantSchema" (AddCampaignParticipantSchema code)

Data management

30

"CampaignDataManagementGroupSchema" (CampaignDataManagementGroupSchema code)

Flow logic

40

"CampaignFlowLogicGroupSchema" (CampaignFlowLogicGroupSchema code)

Bulk email

50

"MarketingEmailSchema" (MarketingEmailSchema code)

Outcomes

60

"CampaignOutcomesGroupSchema" (CampaignOutcomesGroupSchema code)

Send audience to Google Ads

"Google audience element schema" (GoogleAudienceElementSchema code)

Send audience to Meta Ads

"Facebook audience element schema" (FacebookAudienceElementSchema code)

Landing page

"CampaignLandingSchema" (CampaignLandingSchema code)

Each group contains campaign elements that perform specific actions in a campaign flow. These elements are displayed inside their corresponding groups and are ordered by their index.

The table below lists the out-of-the-box campaign elements, the groups they belong to, their order within the group, and the schemas that implement their functionality.

Group

Element

Element index

Element schema

Triggered entry

Triggered adding

10

"Campaign start signal schema" (CampaignStartSignalSchema code)

Add from landing

"Campaign start landing element schema" (CampaignStartLandingSchema code)

Add from web page

20

"Add from web page signal schema" (AddFromWebPageSignalSchema code)

Add from Facebook form

30

"Campaign Facebook form start element schema" (CampaignStartFacebookFormSchema code)

Add from event

40

"Campaign start event element schema" (CampaignStartEventSchema code)

Data management

Eliminate duplicates

10

"Schema element for Deduplicate participants" (CampaignDeduplicatorSchema code)

Add data

20

"Campaign add object schema" (CampaignAddObjectSchema code)

Modify data

30

"Campaign update object schema" (CampaignUpdateObjectSchema code)

Flow logic

Timer

10

"CampaignTimerSchema" (CampaignTimerSchema code)

Random split

20

"Schema element for split gateway" (CampaignSplitGatewaySchema code)

Add to event

30

"Schema for campaign add to event element" (CampaignAddToEventSchema code)

Web page

40

"CampaignWebPageSchema" (CampaignWebPageSchema code)

Outcomes

Exit from campaign

20

"ExitFromCampaignSchema" (ExitFromCampaignSchema code)

Add to event

30

"Schema for campaign add to event element" (CampaignAddToEventSchema code)

After you understand how campaign elements are organized in the Campaign Designer, you can implement your own custom group and reorder campaign elements.

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 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,
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

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)