Skip to main content
If you already send product events to Segment, PostHog or Amplitude, DataFramer can use those instead of the browser SDK. There are two ways in: a Databricks or Amazon Redshift table your tool already writes to, or Segment’s webhook. Neither needs a code change in your app, and you can add as many as you need. To place imported events on the right journeys, set the linking rule. When imported events carry a value at another path than your other events, add that path to the field.

From a warehouse table

Segment, PostHog and Amplitude can each copy every event into a table in Databricks or Amazon Redshift: DataFramer reads that table:
  • Databricks: with a service principal. Give the principal USE CATALOG, USE SCHEMA and SELECT on the tables, and Can use on a SQL warehouse.
  • Amazon Redshift: with a database user that has USAGE on the schema and SELECT on the tables. The tool creates its tables itself, Segment one per new event name, so grant SELECT on future tables too, with ALTER DEFAULT PRIVILEGES for the tool’s user. As for the tools’ own Redshift exports, the endpoint must be publicly accessible, and its security group must allow DataFramer’s address 35.83.1.227 on the port. In a customer-hosted deployment your data plane connects instead: allow your data plane’s network, and the endpoint need not be public.
Then, in DataFramer, open Settings → Events, select Add a warehouse table, and follow its steps. Four things to know:
  • Choose Other table for an events table of your own; you then name its columns.
  • One login has one secret: a new secret saved on one import is also saved on every import that uses the same login.
  • For Segment, list the event tables, not tracks, which has no properties.
  • An empty Only these events imports every event, which for PostHog includes its automatic events such as $pageview and $autocapture.
When the preview looks right, select Start importing. DataFramer then imports new rows every few minutes, each event once, so a table you re-export does not create duplicates. From a table that does not record when each row arrived, such as PostHog’s Redshift table, an event that arrives more than 7 days late is not imported. Edit an import to read more, with an earlier or empty Import events from or more events in Only these events, and its next runs read its tables again from the start, so the events the old settings left out arrive too. Delete stops an import; the events it imported stay, with its name.

From Segment’s webhook

Segment can also send DataFramer a copy of each event as it arrives. This needs no warehouse, but only events from then on arrive. Add one webhook for each Segment source:
  1. In Settings → Events, select Add Segment webhook, give it a name, such as the name of the Segment source, and copy its address and shared secret. The name shows as the source of its events, such as “Segment webhook · web app”.
  2. In Segment, add a Webhooks (Actions) destination to your source. In its Settings, paste the secret into Shared Secret and turn on Enable Destination.
  3. In its Mappings, add a Send mapping for the event types you want, with the address as URL and POST as Method. Keep the default Data, the whole event. Batching can be on.

Next steps

Fields and Linking

Choose how imported events link to your AI traces.