Search documentation...

ChangelogBook a demoSign up


Power internal tools, in-app experiences, and more


The MongoDB destination combines the analytical power of your data warehouse with the low-latency performance of a transactional database. It's been battle-tested with syncs up to hundreds of millions of rows.

Supported syncing

Sync TypeDescriptionSupported Sync Modes
DocumentsSync data to documents in a MongoDB collectionUpsert

Getting started

You need to allowlist Hightouch's IP addresses to let our systems contact your MongoDB instance. Reference our networking docs to determine which IPs you need to allowlist.

When creating a MongoDB destination, you can either enter the Host, Port, Database, User, and Password, or you can provide the full URI connection string. For more information, go to the official connection guide.

Retrieve MongoDB credentials

Assign the user whose credentials you use the built-in readWriteAnyDatabase MongoDB role or create a custom role and assign these actions at minimum:

insertGrants permission to perform insert and create commands
removeGrants permission to perform the delete command
updateGrants permission to perform the update command
listIndexesGrants permission to perform the listIndexes command
listCollectionsGrants permission to perform the listCollections command

Custom Role actions

To create a user in MongoDB, use db.createUser().

Authenticate with connection parameters

Enter the following required fields into Hightouch:

  • Host: The hostname or IP address of your MongoDB server. For help finding this, go to the official connection guide.
  • Port: The port number of your MongoDB server. The default port number is 27017, but yours may be different. You don't need to specify the port if you are using SRV protocol.
  • Database: The name of the your MongoDB database.
  • Username: This can be your personal MongoDB login or a dedicated user for Hightouch.
  • Password: This is the password for the user specified above.
  • Is the host name a seedlist record?: To use SRV protocol (Hightouch defaults to standard), you must toggle this setting. If you are using MongoDB Atlas and the connection string begins with protocol mongodb+srv, toggle this setting to connect.

Authenticate with connection string

The connection string is available in multiple locations. Follow these instructions for one way to find it.

  1. From the MongoDB UI click the Connect button next to the name of your cluster:

    Connect button in MongoDB UI

  2. From the options displayed, select Connect your application:

    Connection options in MongoDB UI

Follow the instructions for changing the password and database name in the string. Copy the string by clicking the copy icon:

Connection string in the MongoDB UI

In Hightouch, in the MongoDB setup configuration, paste your saved connection string into the provided field.

Syncing data

Record matching

Hightouch requires choosing one column to define how to match data in your source to documents in MongoDB. It's usually best to use the _id field in MongoDB. This field is automatically generated by MongoDB if not provided, but you can choose any other field. Be aware that you might need an index on that field to speed up the sync.

Field mapping

You can send every column from your model as a documents field or choose only the columns you need to update for your documents.

Delete behavior

You can choose how to handle documents in MongoDB when the corresponding rows are deleted in your source.

Do nothingKeep the document in MongoDB
Clear FieldsClear the mapped fields but keep the document
Delete Destination RecordDelete the MongoDB document completely

Tips and troubleshooting

Best practices

Create a user in MongoDB specifically for Hightouch and only allow that user to access the collections you want Hightouch to access. Don't use the 'root' user.

Compatible versions

The minimum supported MongoDB version is 4.0. Earlier versions aren't officially supported but may work regardless.

Live debugger

Hightouch provides complete visibility into the API calls made during each of your sync runs. We recommend reading our article on debugging tips and tricks to learn more.

Sync alerts

Hightouch can alert you of sync issues via Slack, PagerDuty, SMS, or email. For details, please visit our article on alerting.

Ready to get started?

Jump right in or a book a demo. Your first destination is always free.

Book a demoSign upBook a demo

Need help?

Our team is relentlessly focused on your success. Don't hesitate to reach out!

Feature requests?

We'd love to hear your suggestions for integrations and other features.

Last updated: Jul 11, 2023

On this page

OverviewSupported syncingGetting startedRetrieve MongoDB credentialsAuthenticate with connection parametersAuthenticate with connection stringSyncing dataRecord matchingField mappingDelete behaviorTips and troubleshootingBest practicesCompatible versionsLive debuggerSync alerts

Was this page helpful?