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.


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.


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


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.


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.


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.