Giter VIP home page Giter VIP logo

customerio-plugin's Introduction

Customer.io Plugin

Send event data into Customer.io. User emails will also be sent if available.

Customer.io Screenshot

Installation

https://posthog.com/docs/cdp/customer-io

  1. Open PostHog.
  2. Go to the the Data pipeline tab in the left sidebar.
  3. Search for 'Customer.io' in the list.
  4. Install it and immediately provide your Customer.io Site ID and API Key in the configuration pane.
  5. Enable the app and watch your 'People' list get populated in Customer.io as events come into PostHog!

customerio-plugin's People

Contributors

abigsmall avatar albtsantos avatar conradkurth avatar kappa90 avatar macobo avatar marconlp avatar mariusandra avatar purcell3a avatar tiina303 avatar timgl avatar tkaemming avatar tomasfarias avatar twixes avatar yakkomajuri avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

customerio-plugin's Issues

Add an option to list events to Exclude from sending to Customer.io

Currently there's an option to list events to send to Customer.io. Would be great to have another field where we can list events to be excluded from getting sent to Customer.io, including also the option exclude the Identify event (this is good for cases where the person needs to be created using the API).

Renaming event name when exporting to customer.io

I have the same events on both PostHog and CustomerIO but with different naming conventions. I want to take out the clientSDK of CustomerIO and use this directly through PostHog, but doing so I would have duplicate events with different naming which would be confusing on CustomerIO seeing as their platform does not allow editing/removing events.

Could there be something that allows us to transform the event name to a different name/format when passing to CustomerIO?

Update a person in Customer.io when the "Set" function is called

Currently there's no way to update a person's info once it's created in Customer.io. In PostHog, we use the "Set" function to update a user's info so it would make sense to have the "Set" function send an update request to Customer.io.

One use case is if we have a multi-step signup form, currently there's no way fill the person's info after every step. We call Identify after the first step which includes the user's unique id and email, but then when we ask for the user's first name, interests, etc in the next steps, this info doesn't reach Customer.io. Calling identify again after every step doesn't work either.

Created at is sent in invalid format.

Customer.io requires unix time e.g. 1687336824

Posthog is currently sending an invalid format e.g. 2023-06-15T05:40:43.000000Z, causing errors in customer.io.

Until fixed, the plugin is not really usable.

Megaissue - planned upgrade work

Problems

Gathering the issues here as we will likely try and solve this in a way that is more holistic rather than patching existing broken behaviours

  • Person Profile needed for email - issue ticket ticket ticket
  • Anonymous user IDs - ticket
    • Way to specify what property to use as the ID and whether to ignore it if not found
    • Maybe we should only ever send identified users?
  • Group support - issue
  • Event filtering - issue issue
    • Could ideally be done with the new Action filtering UI rather than in code

Proposed solution

Identifying by email only works if each event sends email

The problem:

  1. we make the decision to send the person or not based on if they have ever had email set
    return customer.status.has('with_email')
  2. however in the current event we might not have the email
    const email = getEmailFromEvent(event)
    (
    customerStatus.add('with_email')
    could have been set by a previous event)
  3. then we never override the id, because we didn't have an email
    id = customer.email

If I understand correctly, then we would always want to update the properties, i.e. send the identify when the person properties change

which would mean we'd need to instead of keeping the info that the person has been identified by email we'd need to keep the emails, which is a bit tricky (running arbitrary code, e.g. SQL injection that we'll need to guard against), in addition to increasing our storage demand.

We currently don't have a way to pass person info to the plugins, which would be the ideal solution for this problem

See thread for more info: https://posthog.slack.com/archives/C03PN99EJ4C/p1675946098284529

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.