Skip to main content

Connect to SQL Server

You may need to allowlist Hightouch’s IP addresses to let our systems connect to your SQL Server instance. Reference our networking docs to determine which IP addresses you need to allowlist.You can also securely connect to your SQL Server instance using AWS PrivateLink or GCP Private Service Connect. AWS PrivateLink and GCP Private Service Connect are Business Tier features.

SSH tunneling

Hightouch can connect directly to SQL Server over the public internet or via an SSH tunnel. Since data is encrypted in transit via TLS, a direct connection is suitable for most use cases. You may need to set up a tunnel if your SQL Server instance is on a private network or virtual private cloud (VPC). Hightouch supports both standard and reverse SSH tunnels. To learn more about SSH tunneling, refer to Hightouch’s tunneling documentation.
The connection string method doesn’t currently support SSH tunneling. Please if you’re interested in this feature.

Azure firewall setup

By default, Azure protects your SQL Server from any external IP address from connecting to your SQL Server. Follow these steps to add Hightouch’s IP addresses to the firewall:
  1. Log into your Azure Console Dashboard.
  2. Click on SQL databases under Services.
  3. Select the SQL database you want to update.
  4. Select Set server firewall . Azure Console Dashboard with settings
  5. Under Public network access, select Selected networks. Azure Console Dashboard with settings
  6. Scroll to Firewall rules and click Add a firewall rule. Azure Console Dashboard with settings
  7. Allowlist the Hightouch IP addresses for your region.
  8. Click the Save button on the bottom left.

Required permissions

Both setup options require:
  • Server name (IP address or Azure hostname)
  • Port number (1433 by default)
  • Database name
  • SQL Server Username
  • SQL Server Password
Your credentials must be able to:
  • Add/update/delete rows in your sync’s table.
  • View these tables: (*These are used for gathering metadata to set up the sync.)
    • INFORMATION_SCHEMA.COLUMNS
    • INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    • INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
    • SYS.COLUMNS
To ensure your credentials are correct, click Test connection. This will confirm if Hightouch is able to properly connect to your database by running a simple SELECT query.

Password form

Connection string

Connection string must be in this format: Server=server;Database=database;User Id=username;Password=password;Encrypt=boolean

Sync configuration

Hightouch supports Upsert mode with the option to delete removed rows. Select the schema and table you want to sync to. A common schema to use is the database’s default, dbo.

Record matching

Records can be matched from your source to your database table using any primary key or unique column. Hightouch only shows columns that are of the PRIMARY KEY or UNIQUE type in the dropdown. Note: We do not display IDENTITY columns as those can’t be edited or set when inserting. If there are no fields in the dropdown, you must add a primary key or unique constraint to your table in SQL Server. Then, click the refresh icon to access the newly created column.

Field mapping

Select the fields from your source that you want to sync to SQL Server.
Make sure you account for column types and columns that are non-nullable. If you upsert any row with the wrong column type or set a null value for a non-nullable column, the entire batch with that row (up to 1k rows) will fail.

Tips and troubleshooting

To see the exact API requests and responses from each sync run, use the live debugger. To get notified by Slack, PagerDuty, SMS, or email when a sync fails, set up sync alerts. If you run into an issue this page doesn’t cover, .

Common errors

Cannot open server ‘hightouch-test’ request by login

If you see the following error message, you need to update your firewall settings in your Azure Console.

”Invalid time” error

This error occurs when incorrectly formatted data is sent to a SQL Server time field. To resolve this issue, you need to reformat your model column data. For example, if your model column contains values formatted like hh:mm:ss, you need to use the template mapper to change the data’s format to:
Be sure to replace column_name with the name of your time column. Template mapping in the Hightouch UI SQL Server accepts these types of values and converts them to the hh:mm:ss.nnnnnnn format SQL Server expects.
Last modified on May 1, 2025