﻿#### 

With Sitecore 9, xConnect and [Marketing Automation](https://doc.sitecore.net/sitecore_experience_platform/digital_marketing/marketing_automation/marketing_automation_campaigns/marketing_automation_campaigns "Marketing Automation") release we are witnessing a new era creating automated campaigns with Sitecore. 

Building automation plans is now easy and user friendly. Marketers need little knowledge of Sitecore to make use of Automation campaigns. They can use Marketing automation campaigns to establish relationships with contacts by adopting various communication actions across various channels. The number of conditions that can be used to evaluate contacts has drastically increased. I am sure we will see more built in conditions and actions once EXM, CRM Connectors and Sitecore Commerce products are released for Sitecore 9.

The following image illustrates sample automation plan where contact gender is evaluated and contact behavior profile is changed.

![marketing Automation](https://www.brimit.com/-/media/images/blog/marketingautomation1.png?la=en&amp;hash=8A42BEE1EA66D499EF9E77E16DA3E15D)

Before creating new automation campaigns, Marketers need to ensure all required conditions and actions are in place. Nevertheless, every project is unique, and developers are there to help marketers enable custom engagement criterias and automation scenarios. Thanks to opened, developer friendly Sitecore architecture, developers can create and deploy new conditions and actions with reasonable efforts.

Sitecore 9 has excellent documentation that covers Marketing Automation Engine. I strongly recommend you start with a [quick overview](https://doc.sitecore.net/developers/xp/marketing-automation/automation-engine/index.html "Engine overviewn") to learn about new data flow and APIs. While [creating custom conditions](https://doc.sitecore.net/developers/xp/segmentation/create-a-custom-predicate.html "custom conditions") is something very similar to Sitecore 8 approach, creating custom action (or to be precise activity type) is something covered in a [number of documentation pages](https://doc.sitecore.net/developers/xp/marketing-automation/activities/activity-types/index.html "activity types"). Its great to see such a detailed documentation, but!

Sit tight! As a traditional backend developer, you will need to understand and use a number of relatively new technologies and tools like AngularJS, Webpack and Typescript.

These technologies are not new to Frontend developers, but normally are not in scope of work for Sitecore developers. Essentially you will create action type logic in c# and action type UI and UI logic in AngularJS. 

This series of posts is intended to release some stress from traditional backend developers creating custom action types.

Thanks to support from Alistair Deneys [@adeneys](https://twitter.com/adeneys "Alistair Deneys") I can share a starter-kit kind of project with all backend and frontend assets combined and integrated.

In order to create custom action type we will need to do the following steps:

- [Create Activity Type backend logic and definition item](https://www.brimit.com/blog/sitecore-marketing-automation-creating-activity-definition "sitecore activity definition")
- [Create Activity Type Sitecore UI and Editor](sitecore-marketing-automation-creating-activity-editor "sitecore activity editor")
- [Deploy Activity Type to Sitecore UI and Marketing Automation engine](https://www.brimit.com/blog/sitecore-marketing-automation-deploying-activity-type-automation-engine "Marketing Automation deploy")

### Basics first...

Let’s start with basics. The following image illustrates sample Marketing Automation plan and its major elements.

![marketing Automation](https://www.brimit.com/-/media/images/blog/marketingautomation2.png?la=en&amp;hash=8393A9783CBB3034EDF5D455761FB47C)

Contacts will be enrolled in the above automation plan once **entry condition** is met which is a “**Register**” goal triggered. Next contact is immediately assigned 10 points of engagement value by “**Increase engagement value**” marketing action. On the image above, **Goal triggered** action is selected, which is a Listener type of action. Listener action type evaluates all external triggers that take place for the contact within specified 10 days delay to check if particular event or condition is met (**Product purchase goal** in my example). If there was no product purchased within 10 days it will move the contact to a **conditional decision point** which was in my example “where the contact's profile is marked as ‘Do not market’”. Assuming decision point is evaluated to false, another custom action to **Send promo email** is fired. If, however, contact purchased a product within 10 days, it will be enrolled in a different automation plan (for example to cross sell complementary products) which is done by “**Move to another campaign**” action.

Action types are [classified](https://doc.sitecore.net/developers/xp/marketing-automation/activities/activity-types/index.html#activity-type-classification "classification") in a number of categories based on its behaviour and purpose. Once an action is selected a corresponding action type editor is shown on the right hand side, providing marketer with UI to modify action parameters. 

It is also essential to understand when and how contact’s plan and activity enrollment can be triggered, follow [the link](https://doc.sitecore.net/developers/xp/marketing-automation/automation-engine/enrollment/index.html "enrollment") to learn the options.

Browse to [part 2](https://www.brimit.com/blog/sitecore-marketing-automation-creating-activity-definition "sitecore activity definition") to learn how to create Activity Type backend logic and definition item. 

#### Read more on marketing automation and Sitecore 9:

- [Creating Activity Type backend logic and definition item](https://www.brimit.com/blog/sitecore-marketing-automation-creating-activity-definition "Sitecore Activity Type")
- [Deploying Activity Type to Sitecore UI and Marketing Automation engine](https://www.brimit.com/blog/sitecore-marketing-automation-deploying-activity-type-automation-engine "Marketing Automation engine")
- [Creating Activity Type UI and Editor](https://www.brimit.com/blog/sitecore-marketing-automation-creating-activity-editor "Creating Activity Type")
- [Custom Marketing Automation Action - Introduction](https://www.brimit.com/blog/sitecore-9-custom-marketing-automation-action "Custom Marketing Automation Action")
- [Marketing Automation API - enrolling contacts](https://www.brimit.com/blog/sitecore-marketing-automation-api-enrolling-contacts "Marketing Automation API")
- [Marketing Automation - Repeated and concurrent contact enrollments](https://www.brimit.com/blog/sitecore-9-marketing-automation-multiple-enrollments "Repeated and concurrent contact enrollments")

##### Do you need help with your Sitecore project?

      ![](~/media/CD37043DFD1F491D8E92958A11959F75.ashx?la=en&amp;hash=D08B252DD3B41C09B588007541E5D22F)

   [VIEW SITECORE SERVICES](https://www.brimit.com/expertise/sitecore-cms)

###### Author

[!\[Alexei Vershalovich\](https://www.brimit.com/-/jssmedia/feature/blogs/authors/alexei-vershalovich-brimit---500.png?h=1098&amp;iar=0&amp;w=1042&amp;hash=7551A887E43E4DDE95E9C95102DBDF1B)
Alexei Vershalovich
Principal Consultant, digital experience and e-commerce](https://www.brimit.com/blog/author?authors=Alexei%20Vershalovich)

#### More on Sitecore

[!\[How Vercel Will Help You Save Effort When Deploying Sophisticated Sitecore Projects\](https://www.brimit.com/-/jssmedia/project/brimit/blog/2024/vercel_cover-image.png)
#Guides#How-toDXPE-commerce
##### How Vercel Will Help You Save Effort When Deploying Sophisticated Sitecore Projects
Optimize and accelerate the development and deployment of complex multisite Sitecore projects.
Alexei Vershalovich on July 17, 2024](https://www.brimit.com/blog/how-vercel-will-help-you-save-effort-when-deploying-sophisticated-sitecore-projects)

[!\[Training Up Tomorrow's Sitecore MVPs: a Mentoring Success Story\](https://www.brimit.com/-/jssmedia/project/brimit/blog/2023/sitecore-mentoring---cover-image.png)
#How-toDXP
##### Training Up Tomorrow's Sitecore MVPs: a Mentoring Success Story
How to participate in the Sitecore Mentor program and help younger colleagues jump-start a career in Sitecore development.
Sergey Baranov on October 2, 2023](https://www.brimit.com/blog/training-up-tomorrows-sitecore-mvps)

[!\[Going Headless. Part 2: When a Headless CMS Is Your Best Bet (if you have Sitecore)\](https://www.brimit.com/-/jssmedia/project/brimit/blog/2022/headless/adobestock_456986731.jpg)
#How-toDXPE-commerce
##### Going Headless. Part 2: When a Headless CMS Is Your Best Bet (if you have Sitecore)
Discover how a headless CMS can benefit organizations that use Sitecore.
Daniil Raschupkin, Palina Trokhautsava on September 15, 2022](https://www.brimit.com/blog/going-headless-part-2-when-a-headless-cms-is-your-best-bet-if-you-have-sitecore)

![](https://bat.bing.net/action/0?ti=187017043&amp;tm=gtm002&amp;Ver=2&amp;mid=8151e2d7-4a9b-42c4-85b8-b7880c6fd98c&amp;bo=2&amp;gtm_tag_source=1&amp;pi=0&amp;lg=en-US&amp;sw=800&amp;sh=600&amp;sc=24&amp;nwd=1&amp;tl=Sitecore%209%3A%20Custom%20Marketing%20Automation%20Action%20-%20Introduction&amp;kw=Sitecore,%209,%20Custom,%20Marketing,%20%20Automation,%20Action,%20xconnect,%20conditions&amp;p=https%3A%2F%2Fwww.brimit.com%2Fblog%2Fsitecore-9-custom-marketing-automation-action&amp;r=&amp;lt=302&amp;evt=pageLoad&amp;sv=2&amp;asc=D&amp;cdb=AQAY&amp;rn=657519)