Skip to content
Go to file
Cannot retrieve contributors at this time
116 lines (85 sloc) 4.4 KB

What is CampaignChain?

CampaignChain is open-source campaign management software to plan, execute and monitor digital marketing campaigns across multiple online communication channels, such as Twitter, Facebook, Google Analytics or third-party CMS, e-commerce and CRM tools.

For developers, CampaignChain is a platform to integrate key marketing campaign management functions with data from multiple channels. It is implemented in PHP on top of the Symfony framework.

Operations and Locations

Locations are created when connecting to a new Channel or by an Operation. Upon creation by a Channel, the URL of the Location is usually known and can be stored in the system when creating the new Location. For example, when connecting a new Twitter user stream to CampaignChain, the user's URL on Twitter will be accessible (e.g.

This is different when it comes to Operations. An Operation could well create a Location stub without the URL and only provide the URL after the Operation has been executed. For example, the URL of a scheduled tweet will only be generated by Twitter once the tweet has been posted. Hence, CampaignChain allows Operations to create Locations without a URL, but requires them to provide a URL when the Operation gets executed.

Visual Summary

The following diagram explains the relationship between the various entities.


It should be clear from this diagram an Activity is never related directly to a Channel. The relationship is always Channel -> Location -> Activity -> Operation.

A more concrete example of this relationship is illustrated below.


Modules and Hooks

CampaignChain has been designed so that it does not require you to replace existing digital marketing applications. Instead, it serves as a platform for integrating such applications and acts as a cockpit for managing digital marketing campaigns.


Due to CampaignChain's modules architecture, any online channel along with its locations can be integrated. Furthermore, custom campaigns, milestones, activities and operations can be developed. Given that CampaignChain is built on top of the Symfony framework, modules can use functionality provided by other modules.


Hooks are reusable components that provide common functionality and can be used across modules to configure campaigns, milestones, channels, locations, activities and operations. CampaignChain already provides a number of hooks and developers can easily add new ones.

For example, CampaignChain comes with an assignee hook, which makes it possible to assign specific channels or activities to members of a marketing team. Similarly, CampaignChain's due date hook can be used to specify a due date for a Twitter post activity; the same hook can be reused to define a due date for a campaign milestone.

Call to Action

CampaignChain allows tracking Calls to Action across various Channels and Locations to understand which Operations had the highest impact. Imagine the following conversion funnel:

  1. A Twitter post links to a landing page on a website.
  2. The landing page includes a registration form to download something.
  3. All the personal data collected in the form will be saved as leads in a CRM.

With CampaignChain, you will be able to understand how many leads have been generated by that specific Twitter post.

Learn more about the details of CampaignChain's :doc:`Call to Action (CTA) Tracking </ce/developer/book/cta>`.

User Interface

CampaignChain's Web-based user interface has been implemented with Bootstrap 3. Thus, it is responsive and works on desktop computers as well as mobile devices such as tablets and smartphones.


[1]This terminology was used by Lars Trieloff in his Feb 2014 presentation, which also inspires CampaignChain's architecture.