# Marketing Automation Module

The marketing_automation module allows marketing actions to be automated. It is based on scenarios and activities that are executed on selected records.

## Scenario

A scenario provides the entry point for records into an automated marketing campaign. Each record can only enter a scenario once. A scenario is defined by:

> - Name

> - Model: the type of record for the scenario (by default Party and Sale)

> - Domain: used to filter records

> - State:

>   > - Draft

>   > - Running

>   > - Stopped

A cron task runs periodically to find new records to apply the scenario to.

## Activity

The activities form a scenario. They define which action should be triggered and when it should happen. The activities are organized as a tree and defined by:

> - Name

> - Parent

> - Children

> - On: event from the parent that triggers the activity:

>   > - E-Mail Opened

>   > - E-Mail Not Opened

>   > - E-Mail Clicked

>   > - E-Mail Not Clicked

> - Condition: that the record must match to execute the activity

> - Delay: before the action is executed

> - Action: list of available actions

### Actions

#### Send E-Mail

The activity send an e-mail to the party defined on the record. The E-mail is composed using an HTML Genshi template with record in the evaluation context. All <a> elements have their href replaced by a shortened version used to trigger children activities. If the href value is unsubscribe, it is replaced by the URL which allows the recipient to block their record for the scenario. A empty image is automatically added at the end of the <body> to track when emails are opened.

## Record

It stores a reference to the records included in each scenario. If the record is blocked, no activity will be triggered for the record.

## Record Activity

It stores the state of a record for an activity of the scenario.

A cron task runs periodically to execute any waiting record activity that is due.

## Configuration

The marketing_automation module uses parameters from the section:

- [marketing]:

  > - email_from: The default From for the email.

  > - automation_base: The base URL without a path for the unsubscribe URL and the empty image. The default value is created using the configuration [web] hostname.