For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Log inBook a demo
  • Getting started
    • Introduction
    • Obtaining API keys
    • Quickstart
    • Native clients
    • Concepts
    • Embedding authentication
    • Versioning
    • Idempotent requests
    • Events
  • Configuring your connections
    • CDC streaming from databases
  • Code examples
    • Bulk sync (ELT) from HubSpot to PostgreSQL
    • Bulk sync (ELT) from Salesforce to S3
    • Bulk sync (ELT) from Salesforce to Snowflake
    • Model sync (Reverse ETL) from MongoDB to Salesforce
  • API Reference
Logo
Log inBook a demo
On this page
  • 1. Create a MongoDB connection
  • 2. Create an Salesforce connection
  • Redirection
  • 3. Create a MongoDB data model
  • Enumerating model sources
  • 4. Create a sync from MongoDB into Salesforce using the data model
  • Enumerating targets
Code examples

Model sync (Reverse ETL) from MongoDB to Salesforce

Was this page helpful?
Previous

Get Bulk Destination

Next

Before getting started make sure to set your Polytomic API key as an environment variable:

$export POLYTOMIC_API_KEY=YOUR-API-TOKEN

This example tutorial will cover four steps:

  1. Connecting to MongoDB.
  2. Connecting to Salesforce.
  3. Creating a data model using the MongoDB database.
  4. Loading data from MongoDB into Salesforce.

1. Create a MongoDB connection

The following request will create a MongoDB connection. The configuration for each type of connection can be found at the connection configuration page.

$curl --request POST \
> --url https://app.polytomic.com/api/connections \
> --header "accept: application/json" \
> --header "content-type: application/json" \
> --header "X-Polytomic-Version: 2023-04-25" \
> --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \
> -d '{"name": "MongoDB Connection",
> "type": "mongodb",
> "configuration": {
> "hosts": "example.mongodb.net",
> "username": "user",
> "password": "secret"
> }
> }'

2. Create an Salesforce connection

The following request will create a Salesforce connection. The configuration for each type of connection can be found at the connection configuration page.

$curl --request POST \
> --url https://app.polytomic.com/api/connections \
> --header "accept: application/json" \
> --header "content-type: application/json" \
> --header "X-Polytomic-Version: 2023-04-25" \
> --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \
> -d '{"name": "Salesforce Connection","type": "salesforce", "configuration": {"domain": "https://example.my.salesforce.com"}}

Since Salesforce connections uses OAuth to authenticate, we’ll need to follow the link returned in the auth_url parameter in the response.

Redirection


By default, the API expects the auth_url to be opened in a new browser window. If you’d like to modify the redirect behavior, there is an optional redirect_url parameter that can be added to the request body.

3. Create a MongoDB data model

$curl --request POST \
> --url https://app.polytomic.com/api/models \
> --header "accept: application/json" \
> --header "content-type: application/json" \
> --header "X-Polytomic-Version: 2023-04-25" \
> --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \
> -d '{
> "name": "MongoDB Model",
> "configuration": {
> "database": "example",
> "collection": "users"
> },
> "connection_id": "YOUR-MONGODB-CONNECTION-ID"
> }'

Enumerating model sources


For information about how to enumerate sources see the Quickstart Create a model section.


4. Create a sync from MongoDB into Salesforce using the data model

This sync maps the email field in the data model to the email field of Salesforce Contacts. It additionally maps the FirstName and LastName fields. The field mappings can be extended to syncs additional fields.

Enumerating targets


For information about how to enumerate targets, see our Create a sync section.


$curl --request POST \
> --url https://app.polytomic.com/api/syncs \
> --header "accept: application/json" \
> --header "content-type: application/json" \
> --header "X-Polytomic-Version: 2023-04-25" \
> --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \
> -d '{
> "name": "Mongo to Salesforce Sync",
> "mode": "create",
> "identity": {
> "source": {
> "field": "email",
> "model_id": "YOUR-MODEL-ID"
> },
> "target": "Email",
> "function": "equality"
> },
> "fields": [
> {
> "source": {
> "field": "first_name",
> "model_id": "YOUR-MODEL-ID"
> },
> "target": "FirstName"
> },
> {
> "source": {
> "field": "last_name",
> "model_id": "YOUR-MODEL-ID"
> },
> "target": "LastName"
> }
> ],
> "schedule": {
> "frequency": "manual"
> },
> "target": {
> "connection_id": "YOUR-SALESFORCE-CONNECTION-ID",
> "object": "Contact"
> }
> }'