Compatibility Endpoint Migration Guide
This guide will help you migrate from Jitsu Classic to Jitsu 2.0 using compatibility endpoints. You don't need to change your client code, but you need to update the the configuration.
Alternatively, you can switch to a native Jitsu 2.0 client and protocol. See the Sending Data guide for more details.
Set up a new Jitsu 2.0 project
Open https://use.jitsu.com and create a new project.
Migrate API Keys
For each API Key in Jitsu Classic project, a corresponding Site entity must be created in Jitsu 2.0.
To add a new Site entity, open the Event Streaming -> Sites section of the main menu and click the Add new site button.
There you will obtain a new Write Key that should be used in the client configuration.
Also t.jitsu.com
host must be changed to the legacy.d.jitsu.com
in all your client configurations.
Custom domains
In Jitsu 2.0 custom domains are managed on the Site entity level.
To direct you exising custom domain to Jitsu 2.0 you need to add it to the Jitsu 2.0 site and change CNAME to cname.jitsu.com
Issuing a new certificate can take a few minutes. To avoid downtime, you can use the legacy.d.jitsu.com
host in the meantime
or choose a different subdomxain for Jitsu 2.0.
Migrate Destinations
Destination Credentials
In Jitsu 2.0, the Destination entity only sets credentials and destination-specific settings.
To migrate the destination credentials, you need to create a new Destination entity in Jitsu 2.0 and set up the same credentials as in Jitsu Classic.
To add a new Destination entity, open the Destinations section of the main menu and click the Add new destination button.
Migrate Connections
In Jitsu Classic links between an API Key and Destinations can be found in the Connected Destinations property of an API Key.
For each connected destination, you need to create a new Connection entity in Jitsu 2.0.
To add a new Connection entity, open the Event Streaming -> Connections section of the main menu and click the Connect site and destination button.
In the Connection editor choose the corresponding Site(Source) and Destination entities.
Here you can also set parameters like Sync Mode, Data Layout, Functions, etc...
Migrate Transformation
In Jitsu 2.0, the Transform Destination setting is replaced by the Function entity.
To replicate the same transformation logic, you need to create a new function and add it to the Connection settings.
To add a new Function entity, open the Event Streaming -> Functions section of the main menu and click the Add new function button.
There are two ways to adjust existing transformation logic to Jitsu 2.0:
- Rewrite the transformation logic to work with the new event format.
- Use the
toJitsuClassic
,fromJitsuClassic
methods to convert the event to the Jitsu Classic format and back:
export default async function(event, ctx) {
const $ = toJitsuClassic(event, ctx)
// your existing transformation logic here
return fromJitsuClassic($)
}
Don't forget to use fromJitsuClassic($)
method unless you apply transformation for the Webhook destination.
Open the Connection entity editor and add the function in the Functions section.
Data Warehouses specific settings
To make Jitsu 2.0 use the same table layout as Jitsu Classic, you need to set up a Connection entity with the Data Layout set to Legacy Jitsu.
Jitsu 2.0 doesn't have the Table Name setting. To customize the table name, you can use the Function
The User Recognition settings in Jitsu 2.0 was renamed to Identity Stitching and can be found in the Advanced section of the connection settings.
Webhook specific settings
In Jitsu 2.0 webhook destination doesn't have the HTTP JSON Body setting. To customize the request body, you need use the Functions
In Classic project, the webhook request body is derived from classic event layout. To replicate that in Jitsu 2.0 project you need to set up a function that transforms the event back into classic format:
export default async function(event, ctx) {
const $ = toJitsuClassic(event, ctx)
// request body transformation logic if any
return $
}
Add that function to the connection settings.
In Jitsu 2.0, the webhook destination doesn't support the JSON array as the root object of the request body. If it is strictly required, please contact the Jitsu support team.
Change Client configuration
After all API keys, destinations, and connections are migrated, you need to update the client configuration to send event to Jitsu 2.0.
HTML Snippet
Change the hostname of src
attribute to legacy.d.jitsu.com
and replace the data-key
attribute with the Write Key
of your Site:
Snippet for Jitsu Classic:
<script src="https://t.jitsu.com/s/lib.js" data-key="[JITSU_API_KEY]" defer></script>
<script>window.jitsu = window.jitsu || (function(){(window.jitsuQ = window.jitsuQ || []).push(arguments);})</script>
Snippet for Jitsu 2.0:
<script src="https://legacy.d.jitsu.com/s/lib.js" data-key="[SITE_WRITE_KEY]" defer></script>
<script>window.jitsu = window.jitsu || (function(){(window.jitsuQ = window.jitsuQ || []).push(arguments);})</script>
Other clients
For other clients, you need to:
- Replace the
key
parameter with theWrite Key
of your Site - Replace or add
tracking_host
parameter with thehttps://legacy.d.jitsu.com
value.
NPM package:
const { jitsuClient } = require('@jitsu/sdk-js');
const jitsu = jitsuClient({
key: "[SITE_WRITE_KEY]",
tracking_host: "https://legacy.d.jitsu.com" ,
...params
});
If you're writing data directly into Jitsu HTTP API, you need to update the endpoint to https://legacy.d.jitsu.com/api/v1/s2s/event
and change the write key(token) to the new one.
Migrate Sources
In Jitsu 2.0, the Sources entity is replaced by:
- the Service Connections entity which keeps the credentials for the data sources
- the Sync entity which works as a link between Service Connections and Destinations and defines the data import settings and stream selection.
Both entities can be found in the Connectors section of the Jitsu 2.0 main menu.
Make sure that events are flowing
In Jitsu 2.0 you can check the event flow in the Data -> Live Events section of the main menu. There you can find 3 tabs:
- Incoming Events - see the incoming events by Sites
- API Destinations & Functions Logs - logs of API Based Destinations and Functions
- Batches & Data Warehouse Events - logs of Data Warehouse and Batch Destinations
To check how migrated Sources are running you can use the Connectors -> Syncs or Connectors -> All Logs sections of the main menu.