dubture / customerio-bundle
Integrates customer.io into Symfony
Installs: 19 988
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 1
Open Issues: 0
Type:symfony-bundle
Requires
- symfony/framework-bundle: >=2.3
- userscape/customerio: ~1.0
Requires (Dev)
- phpunit/phpunit: ~4.5
- symfony/browser-kit: ~2.2
- symfony/finder: ~2.2
- symfony/monolog-bundle: ~2.2
This package is not auto-updated.
Last update: 2024-12-21 17:53:54 UTC
README
Symfony integration for http://customer.io.
Configuration
Install the bundle using composer and register it in your Kernel.
Then configure your site_id
and api_key
:
# app/config/config.yml dubture_customer_io: site_id: <YOUR-SITE-ID> api_key: <YOUR-API-KEY>
Usage
Customer model
Implement Dubture\CustomerIOBundle\Model\CustomerInterface
on your customer domain class.
Event Tracking / Customer identification
use Dubture\CustomerIOBundle\Event\TrackingEvent; use Dubture\CustomerIOBundle\Event\ActionEvent; /** @var \Symfony\Component\EventDispatcher\EventDispatcher $tracker */ $dispatcher = $this->getContainer()->get('event_dispatcher'); $customer = $someRepo->getCustomer(); // retrieve your customer domain object // send the customer over to customer.io for identification $dispatcher->dispatch(TrackingEvent::IDENTIFY, new TrackingEvent($customer)); // now track a `click` event $dispatcher->dispatch(TrackingEvent::ACTION, new ActionEvent($customer, 'click'));
Webhooks
The bundle comes with a controller which can consume customer.io webhooks.
To use them, register the routing.xml:
# app/config/routing.yml customerio_hooks: resource: "@DubtureCustomerIOBundle/Resources/config/routing.xml"
Now your hook url will be http://your.project.com//__dubture/customerio
which you
need to configure over at customer.io.
After doing so, you can listen to webhook events:
<service id="acme.webhooklistener" class="Acme\DemoBundle\Listener\WebhookListener"> <tag name="kernel.event_listener" event="customerio.email_clicked" method="onClick" /> </service>
use Dubture\CustomerIOBundle\Event\WebHookEvent; class WebhookListener { public function onClick(WebHookEvent $event) { $this->logger->info('Customer clicked on email with address: ' . $event->getEmail()); } }