Salesforce Integration
Sync marketplace data with Salesforce CRM for unified sales operations.
Overview
The Automatum-Salesforce integration enables bi-directional synchronization of customers, opportunities, and contract data between your cloud marketplace operations and Salesforce CRM.
Features
- Customer Sync: Automatically sync marketplace customers to Salesforce Accounts
- Opportunity Tracking: Create and update opportunities from private offers
- Contract Management: Sync entitlements to Salesforce Contracts
- Revenue Reporting: Flow marketplace revenue into Salesforce reports
- Activity Logging: Track all marketplace interactions in Salesforce
Prerequisites
Before setting up the integration:
- Salesforce account with API access
- Admin or integration permissions in Salesforce
- Automatum Professional or Enterprise plan
- API enabled in Salesforce org
Setup
Step 1: Connect Salesforce
- Navigate to Settings > Integrations > Salesforce
- Click Connect Salesforce
- Log in to your Salesforce org
- Authorize Automatum to access Salesforce
- Grant required permissions
Step 2: Configure OAuth
Production Environment:
- Redirects to login.salesforce.com
Sandbox Environment:
- Redirects to test.salesforce.com
- Select "Sandbox" in connection settings
Step 3: Map Fields
Configure field mappings between Automatum and Salesforce:
Customer → Account Mapping:
| Automatum Field | Salesforce Field | Sync Direction |
|---|---|---|
| Customer Name | Account Name | Bi-directional |
| AWS Account ID | Custom: AWS_Account_ID__c | Automatum → SF |
| Azure Tenant ID | Custom: Azure_Tenant_ID__c | Automatum → SF |
| Industry | Industry | Bi-directional |
| Website | Website | Bi-directional |
Private Offer → Opportunity Mapping:
| Automatum Field | Salesforce Field | Sync Direction |
|---|---|---|
| Offer Name | Opportunity Name | Automatum → SF |
| Offer Value | Amount | Automatum → SF |
| Status | Stage | Bi-directional |
| Close Date | Close Date | Automatum → SF |
| Vendor | Custom: Marketplace__c | Automatum → SF |
Step 4: Create Custom Fields
Create these custom fields in Salesforce:
On Account Object:
AWS_Account_ID__c (Text, 12 chars)
Azure_Tenant_ID__c (Text, 36 chars)
Marketplace_Customer_ID__c (Text, 50 chars)
Marketplace_Source__c (Picklist: AWS, Azure)On Opportunity Object:
Marketplace__c (Picklist: AWS, Azure)
Private_Offer_ID__c (Text, 50 chars)
Contract_Duration__c (Number)
Marketplace_Status__c (Picklist)On Contract Object:
Entitlement_ID__c (Text, 50 chars)
Marketplace_Product__c (Text, 255 chars)
Usage_Based__c (Checkbox)Step 5: Configure Sync Settings
Sync Frequency:
- Real-time (recommended)
- Hourly
- Daily
Sync Direction:
- Automatum → Salesforce only
- Bi-directional
- Salesforce → Automatum only
Conflict Resolution:
- Automatum wins
- Salesforce wins
- Most recent wins
Data Synchronization
Customer Sync
When a new marketplace customer is created:
- Automatum checks for existing Account by email/AWS ID/Azure ID
- If found: Updates existing Account
- If not found: Creates new Account
- Links Automatum customer to Salesforce Account
Matching Rules:
json
{
"matchingFields": [
"AWS_Account_ID__c",
"Azure_Tenant_ID__c",
"Email"
],
"matchOrder": "first_match",
"createIfNoMatch": true
}Opportunity Sync
Private offers sync to Opportunities:
Stage Mapping:
| Automatum Status | Salesforce Stage |
|---|---|
| Created | Prospecting |
| Email Sent | Qualification |
| Email Seen | Proposal |
| Accepted | Closed Won |
| Expired | Closed Lost |
| Cancelled | Closed Lost |
Auto-Create Opportunity:
json
{
"trigger": "private_offer.created",
"action": "create_opportunity",
"mapping": {
"Name": "{{productName}} - {{customerName}}",
"Amount": "{{offerValue}}",
"CloseDate": "{{expirationDate}}",
"StageName": "Prospecting"
}
}Contract Sync
Entitlements sync to Salesforce Contracts:
On Offer Acceptance:
- Opportunity updated to "Closed Won"
- Contract created in Salesforce
- Contract linked to Account and Opportunity
Contract Fields:
json
{
"AccountId": "{{salesforceAccountId}}",
"StartDate": "{{contractStartDate}}",
"EndDate": "{{contractEndDate}}",
"ContractTerm": "{{durationMonths}}",
"Status": "Activated",
"Entitlement_ID__c": "{{entitlementId}}"
}Automation Rules
Workflow Automation
Create rules to automate actions:
Example: High-Value Deal Alert
json
{
"name": "High Value Deal Notification",
"trigger": {
"event": "private_offer.accepted",
"conditions": [
{ "field": "value", "operator": "greater_than", "value": 100000 }
]
},
"actions": [
{
"type": "salesforce_task",
"assignTo": "Account Owner",
"subject": "High-Value Deal Closed: {{customerName}}",
"dueDate": "+1 day"
},
{
"type": "salesforce_chatter",
"group": "Deal_Announcements",
"message": "🎉 ${{offerValue}} deal closed with {{customerName}}!"
}
]
}Assignment Rules
Auto-assign marketplace customers to sales reps:
By Territory:
json
{
"rules": [
{
"condition": { "field": "country", "value": "US" },
"assignTo": "US_Sales_Queue"
},
{
"condition": { "field": "country", "value": "EU" },
"assignTo": "EMEA_Sales_Queue"
}
]
}By Deal Size:
json
{
"rules": [
{
"condition": { "field": "value", "operator": ">=", "value": 100000 },
"assignTo": "Enterprise_Team"
},
{
"condition": { "field": "value", "operator": "<", "value": 100000 },
"assignTo": "Commercial_Team"
}
]
}Activity Logging
Tracked Activities
Activities logged to Salesforce:
| Activity | Salesforce Object | Details |
|---|---|---|
| Offer created | Task | Subject, due date, notes |
| Email sent | Email Message | Recipients, subject, body |
| Email opened | Task | Timestamp, tracking |
| Offer accepted | Event | Close date, value |
| Contract renewal | Task | Renewal date, value |
Activity Settings
Configure activity logging:
json
{
"logActivities": true,
"activityTypes": [
"private_offer.created",
"private_offer.sent",
"private_offer.viewed",
"private_offer.accepted"
],
"assignTo": "Account Owner",
"defaultTaskStatus": "Completed"
}Reports & Dashboards
Available Reports
Pre-built reports for Salesforce:
Marketplace Revenue Report
- Revenue by marketplace (AWS/Azure)
- Revenue by product
- Revenue by sales rep
Private Offer Pipeline
- Offers by stage
- Conversion rates
- Average deal size
Customer Health
- Usage trends
- Renewal rates
- At-risk customers
Create Custom Reports
Build reports using synced data:
- Go to Salesforce Reports
- Select report type (Opportunities, Accounts, etc.)
- Filter by Marketplace__c field
- Add relevant fields
- Save and schedule
Dashboard Components
Add marketplace data to dashboards:
- Marketplace pipeline chart
- Revenue by cloud platform
- Offer acceptance rate
- Contract renewal forecast
Troubleshooting
Sync Issues
Records not syncing:
- Check connection status in Settings
- Verify API limits not exceeded
- Review sync logs for errors
- Check field mapping configuration
Duplicate records:
- Review matching rules
- Adjust duplicate management settings
- Enable deduplication
Permission Errors
"Insufficient privileges" error:
- Verify Salesforce user has API access
- Check object-level permissions
- Review field-level security
- Reconnect with admin user
Data Mismatch
Values not matching:
- Check field mapping
- Verify data types match
- Review transformation rules
- Check sync direction settings
API Access
Query Salesforce Data
bash
GET /api/integrations/salesforce/query
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"query": "SELECT Id, Name, Amount FROM Opportunity WHERE Marketplace__c = 'AWS'"
}Trigger Manual Sync
bash
POST /api/integrations/salesforce/sync
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"objectType": "customer",
"customerId": "cust_123",
"direction": "to_salesforce"
}Security
Data Access
Automatum accesses:
- Accounts (read/write)
- Opportunities (read/write)
- Contracts (read/write)
- Tasks (create)
- Custom objects (as configured)
Permission Sets
Create dedicated permission set:
- API Enabled
- Object access for synced objects
- Field access for mapped fields
Token Management
- OAuth tokens stored encrypted
- Automatic token refresh
- Revoke access anytime in Settings
Best Practices
- Test in sandbox first - Validate before production
- Clean data regularly - Remove duplicates
- Monitor sync logs - Catch issues early
- Train your team - Ensure adoption
- Review mappings quarterly - Update as needed
Next Steps
Need Help?
Contact support@automatum.io for Salesforce integration assistance.