All Projects → jipiboily → forwardlytics

jipiboily / forwardlytics

Licence: MIT license
Take events and customer data in and send them to various providers, mostly analytics providers.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to forwardlytics

Papercups
Open-source live customer chat
Stars: ✭ 4,554 (+7751.72%)
Mutual labels:  intercom, drift
Chatwoot
Open-source customer engagement suite, an alternative to Intercom, Zendesk, Salesforce Service Cloud etc. 🔥💬
Stars: ✭ 11,554 (+19820.69%)
Mutual labels:  intercom, drift
Hodor
Hodor is a an automation application that is used to open the door controlled by an intercom system from Slack using a custom slash command.
Stars: ✭ 21 (-63.79%)
Mutual labels:  intercom
SpatialAlignment
Helpful components for aligning and keeping virtual objects aligned with the physical world.
Stars: ✭ 29 (-50%)
Mutual labels:  drift
growthbook
Open Source Feature Flagging and A/B Testing Platform
Stars: ✭ 2,342 (+3937.93%)
Mutual labels:  mixpanel
mixpanel-react-native
Official React Native Tracking Library for Mixpanel Analytics
Stars: ✭ 69 (+18.97%)
Mutual labels:  mixpanel
Mixpanel-Statistics
Perform statistics on Mixpanel API data
Stars: ✭ 26 (-55.17%)
Mutual labels:  mixpanel
embedchat
A growth hacking service that you can live chat with visitors on your website
Stars: ✭ 23 (-60.34%)
Mutual labels:  intercom
communications-skill
An intercom, messaging, and (video) calling skill for Mycroft!
Stars: ✭ 14 (-75.86%)
Mutual labels:  intercom
WinAnalytics
A light-weight android library that can be quickly integrated into any app to use analytics tools.
Stars: ✭ 23 (-60.34%)
Mutual labels:  mixpanel
loco car
Software for LOCO, our autonomous drifting RC car.
Stars: ✭ 44 (-24.14%)
Mutual labels:  drift
mixpanel-engage-query
Command line tool to query the MixPanel Engage API for People Data.
Stars: ✭ 48 (-17.24%)
Mutual labels:  mixpanel
KramersMoyal
kramersmoyal: Kramers-Moyal coefficients for stochastic data of any dimension, to any desired order
Stars: ✭ 53 (-8.62%)
Mutual labels:  drift
auto-analytics
UNMAINTAINED! - Complete Google Analytics, Mixpanel, KISSmetrics (and more) integration for JavaScript applications.
Stars: ✭ 28 (-51.72%)
Mutual labels:  mixpanel
EasyRTC
EasyRTC视频会议系统一款强大的实时音视频通话产品,支持语音会议、视频会议、会议录像、会议回放、旁路直播、会议管理控制、文档共享、视频共享等功能,是一款广泛应用于在线教育、互动课堂、视频会议、应急指挥的即时通信平台。
Stars: ✭ 145 (+150%)
Mutual labels:  intercom
HA-SIP
A SIP client inside home assistant!
Stars: ✭ 81 (+39.66%)
Mutual labels:  intercom
mixpanel-lite
2.9k alternative to mixpanel-js with offline support for PWAs
Stars: ✭ 49 (-15.52%)
Mutual labels:  mixpanel
gatsby-plugin-intercom-spa
Gatsby plugin to add intercom onto a site
Stars: ✭ 23 (-60.34%)
Mutual labels:  intercom
driftctl
Detect, track and alert on infrastructure drift
Stars: ✭ 2,020 (+3382.76%)
Mutual labels:  drift
Neural-Tile
A better tiling script for Neural-Style
Stars: ✭ 35 (-39.66%)
Mutual labels:  drift

Forwards analytics events and identification to various marketing & analytics platforms.

You can send events to Forwardlytics, and it will forward it to the configured services like Intercom or Drip.

Looking for a Forwardlytics client library? There is one for Ruby just here.

Status

Where are we at? Can you use it in production?

It is used by Metrics Watch for now and it has been for a while now. I would not say it is rock solid but it has been working well enough for us.

Build Status

Installation

  • go get github.com/jipiboily/forwardlytics

  • set FORWARDLYTICS_API_KEY=SOMETHING_YOU_DECIDE_AND_NO_ONE_CAN_GUESS

To send to Intercom:

  • set INTERCOM_APP_ID=456

To send to Drip:

Please note that you need to send an "email" property to be able to get the Drip integration working.

To send to Drift:

  • set DRIFT_ORG_ID=456 (ATM only possible to find by contacting the drift support dept)

Mixpanel is probably going to be next.

Deployment

Forwardlytics can be deployed to Heroku. You can setup the port it starts on by setting the PORT environment variable.

Error tracking

Right now Forwardlytics supports tracking error via Bugsnag. Thanks to Logrus, it's pretty easy to add any other bug tracker. PRs welcome.

Retrying calls on failure

Forwardlytics has a built-in retry-mechanism than can be enabled should calls to a provider fail. To enable this, set the environment variable NUM_RETRIES_ON_ERROR=X where X is the number of retries to attempt before giving up. This is implemented as an exponential backoff algorithm.

Bugsnag config

To enable Bugsnag, set those environment variables:

BUGSNAG_API_KEY=your-api-key-123
ENVIRONMENT=development

If the environment is not set, it'll work but defaults to development.

You need an integration that doesn't exist yet?

You have two options:

How to add a new integration

To add a new integration you need to add a package that implements the Integration interface to a separate folder in the integrations/ subfolder of this project, usually named after the integration. The integration should be toggled by adding an ENV-variable that is picked up by the Enabled()-function in the intexgration and that is passed to forwardlytics on startup. To activate the new integration, add the path to the new integration in the import-statement in main.go. Remember to add an init() function to the new package that registers the new integration using integrations.RegisterIntegration(<integration-name>, integration). For examples, see the different integrations in the integrations/ subfolder (eg. the drip-integration). Don't forget to add tests for all endpoints and for other integration spesific stuff.

Calling the API

cURL example:

curl --request POST \
--header "Content-Type: application/json" \
--header "Forwardlytics-Api-Key: 123ma" \
-d '{"userID":"123", "userTraits":{"number_of_things":"42"},"timestamp":1459532831}' http://localhost:3000/identify

See ./integration/integration.go for details of what is accepted by the API.

Development

Note that you should install Godep if you are going to add any dependency to this project.

  • FORWARDLYTICS_API_KEY=somevalue go run main.go

If you want auto reloading, install codegangsta/gin and run:

  • FORWARDLYTICS_API_KEY=somevalue gin -a 8080 -t .

You need to set environment variables for the integrations you want to work with.

Running tests

go test -v ./...

Why?

Read "Self-hosted Segment equivalent?" on Medium

Thanks!

Thanks to my friend Julian for the logo! 😀

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].