How Conversion works with Redshift
Conversion connects to Amazon Redshift as a dedicated database user and runs the SQL queries you write on a schedule you pick. Query results can create and update contacts, fill custom objects tied to contacts, or record events that start workflows. The connection is read-only and supports Redshift Serverless as well as private clusters reached through an SSH tunnel.
What you can do
SQL across your schemas
Each sync is a Redshift query over the tables you grant, with schema-qualified joins and columns aliased to Conversion field keys.
Private clusters over SSH
Reach a cluster in a private subnet through a bastion host. Conversion generates the SSH public key you add to the host's authorized_keys file.
Objects and events, not only fields
Rows can become custom objects related to contacts or events on the contact timeline, so audiences and workflows work from your models directly.
Schedules that respect your cluster
Run syncs every 15 minutes, hourly, every 6 hours, or daily with a last_sync_time filter, and point Conversion at a read replica to keep load off production.
What syncs
| Data | Direction | Details |
|---|---|---|
| Contacts | Into Conversion | Matched by userId when the query returns one, otherwise by email. Creating a contact requires an email. |
| Custom objects | Into Conversion | Records of any custom object type, related to contacts through relationshipFields built with JSON_BUILD_OBJECT and cast to text. |
| Events | Into Conversion | Timestamped events on contacts. Supply an eventId and rows that sync twice are ignored. |
How to connect Redshift
- 1 Create a dedicated Redshift user for Conversion with USAGE on each schema and SELECT on the tables you want to sync.
- 2 Allow Conversion's IP addresses in the cluster's security group or firewall on your Redshift port, 5439 by default.
- 3 Add a Redshift connection in Conversion settings with the host, port, database, user, and password. Enable SSL, and SSH tunneling if the cluster isn't publicly accessible.
- 4 Create a sync for each destination with its SQL query and schedule.