Skip to main content
Version: 8.2

Customize marketing campaigns

Level: advanced
note

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:

  1. Create a campaign. Instructions: Add a campaign (user documentation).
  2. Set up the diagram. Instructions: Set up campaign diagram (user documentation).
  3. 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:

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 Terrasoft.manager.BaseSchemaManager class.

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

  1. Create a campaign element.
  2. Create a property panel for the campaign element.
  3. Add the element to the element area of the Campaign Designer.
  4. Create an executable element for the campaign element.
  5. Implement the business logic of the campaign element.
  6. 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:

  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.
  4. 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 AddValidationInfo(string) method.

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 the AddValidationInfo(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:

  1. Recompile the project.
  2. Clear the storage that contains cached data.
  3. Clear the application pool.
  4. 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

  1. Create a flow schema for a campaign element.
  2. Create a flow property panel for a campaign element.
  3. Create an executable element for the campaign element flow.
  4. Implement the business logic of the flow for the campaign element.
  5. Implement the flow logic when the source is changed.
  6. Connect the flow logic.

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

Schedule the next campaign launch

  1. Create a new campaign or open an existing campaign. Instructions: Add a campaign (user documentation).

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

  3. Save the changes.

As a result:

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

  2. The time to launch the next campaign will be set. To do this, Creatio executes the following actions:

    1. Compare values of the element launch time.
    2. Select the closest campaign launch time based on the comparison.
    3. Set the selected value as the next campaign start time.
  3. 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:

  1. Create a new campaign or open an existing campaign. Instructions: Add a campaign (user documentation).

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

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