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 three steps:
- Connecting to MongoDB.
- Connecting to Salesforce.
- Creating a data model using the MongoDB database.
- 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 a 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 optionalredirect_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-S3-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 the Quickstart "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"
}
}'