SQL Transformations
Introduction
SQL Transformations give you the full power of ANSI SQL to transform your events. Any transformation you can express with SQL, you can perform with SQL transformations. When you write a SQL transformation you will have access to an incoming_event
table. This table has a number of columns that correspond to the built-in data Freshpaint collects and you will have access to an additional JSON column called props
where you will have access to any custom properties. The full schema of the incoming_event
table is described here.
SQL Transformations are part of the Freshpaint SQL add-on. Contact support@freshpaint.io to request access.
SQL Transformations are only available when either the event being transformed is a server-side event or the destination is in server-side mode. If you want to make as much use of SQL Transformations as possible, we recommend configuring your destinations in server-side mode.
Behavior
When you write a SQL Transformation you are writing a SQL query against the incoming_event
table. Your query should return either a single row or no rows. Any columns returned by your query will be attached to the event as custom properties. If your query returns zero rows, the event will filtered out and not sent to any destinations. As an example, the query:
Will create a new property example_prop
with the value 10
. If you return NULL
for the value of a property, that property will instead be deleted.
There are two reserved column names that have special behavior when you return them:
event_name
- When you return this from a query, the name of the event will become the provided value.user_id
- When you return this from a query, the user_id of the event will become the provided value.
Examples
Prepend a string to your events
This transformation will prepend all events with the prefix SQL:
. If the incoming event name is Login
, the transformed event will have the name SQL: Login
.
Run a custom formula
This example will double the value of the custom property a
:
Perform a regular expression match
This example extracts a URL parameter from the url of the event using regular expressions:
Add a constant property
This example creates a new property called new_property
an always sets it to the value 10
:
Delete a property
This example deletes the property sensitive_identifier
from the event. This is done by setting the value of the property to NULL
.
Filter events based on a regular expression
This example filters out all events where the email is a gmail address:
Schema
The incoming_event
table has the following schema:
Last updated