Freshpaint
Search…
How Do I Switchover From Segment?
The Freshpaint Javascript SDK is 100% compatible with the Segment SDK. That means you can migrate with only a minimal amount of engineering resources. All your event tracking will automatically be switched over to Freshpaint.
Switching from Segment to Freshpaint takes only two steps:
  1. 1.
    Setup your destinations in Freshpaint.
  2. 2.
    Replace the Segment SDK with the Freshpaint SDK.

1. Setting up Your Destinations in Freshpaint

For each each destination you have in Segment, setup the corresponding destination in Freshpaint. This can be done in the Freshpaint destinations page. For each destination, copy and paste your credentials into Freshpaint.
Easily configure existing Segment destinations in Freshpaint
You can override your destinations hardcoded into your Segment tracking code. This can be done in the Freshpaint Event Schema, and clicking on the Advanced Settings for a particular event's Destinations.

2. Replacing the Segment SDK with the Freshpaint SDK

First remove the Segment install snippet and replace it with the Freshpaint snippet. You can find the Freshpaint installation snippet in the Freshpaint sources page or copy and paste from the code block below.
1
<script type="text/javascript">
2
(function(c,a){if(!a.__SV){var b=window;try{var d,m,j,k=b.location,f=k.hash;d=function(a,b){return(m=a.match(RegExp(b+"=([^&]*)")))?m[1]:null};f&&d(f,"fpState")&&(j=JSON.parse(decodeURIComponent(d(f,"fpState"))),"fpeditor"===j.action&&(b.sessionStorage.setItem("_fpcehash",f),history.replaceState(j.desiredHash||"",c.title,k.pathname+k.search)))}catch(n){}var l,h;window.freshpaint=a;a._i=[];a.init=function(b,d,g){function c(b,i){var a=i.split(".");2==a.length&&(b=b[a[0]],i=a[1]);b[i]=function(){b.push([i].concat(Array.prototype.slice.call(arguments,
3
0)))}}var e=a;"undefined"!==typeof g?e=a[g]=[]:g="freshpaint";e.people=e.people||[];e.toString=function(b){var a="freshpaint";"freshpaint"!==g&&(a+="."+g);b||(a+=" (stub)");return a};e.people.toString=function(){return e.toString(1)+".people (stub)"};l="disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove people group page alias ready addEventProperties addInitialEventProperties removeEventProperty addPageviewProperties".split(" ");
4
for(h=0;h<l.length;h++)c(e,l[h]);var f="set set_once union unset remove delete".split(" ");e.get_group=function(){function a(c){b[c]=function(){call2_args=arguments;call2=[c].concat(Array.prototype.slice.call(call2_args,0));e.push([d,call2])}}for(var b={},d=["get_group"].concat(Array.prototype.slice.call(arguments,0)),c=0;c<f.length;c++)a(f[c]);return b};a._i.push([b,d,g])};a.__SV=1.4;b=c.createElement("script");b.type="text/javascript";b.async=!0;b.src="undefined"!==typeof FRESHPAINT_CUSTOM_LIB_URL?
5
FRESHPAINT_CUSTOM_LIB_URL:"//perfalytics.com/static/js/freshpaint.js";(d=c.getElementsByTagName("script")[0])?d.parentNode.insertBefore(b,d):c.head.appendChild(b)}})(document,window.freshpaint||[]);
6
freshpaint.init("82ef97c4-8367-4d61-b0be-261498e9dd13");
7
freshpaint.page();
8
</script>
Copied!
With that done, you need to point your Segment tracking code to Freshpaint. This can be done by setting the analytics object to the freshpaint object:
1
window.analytics = freshpaint;
Copied!

Congrats! You're Done.

After replacing the Segment SDK with the Freshpaint SDK, you've finished the migration process. We promised this would be easy. If you want to run a test to show that everything is working properly, try performing an action that would normally trigger an event in Segment. You should see that event show up in the Freshpaint Liveview and in all your destinations, too.