Salesforce Integration
The DailyStory integration with Salesforce enables:
- Syncing contacts from Salesforce into DailyStory
- Leads in DailyStory that are marked as Marketing Qualified are automatically created as new leads in Salesforce.
- Salesforce Opportunities can be associated with a DailyStory campaign.
- Track Salesforce Opportunity value back to your DailyStory campaign.
- Optional bi-directional sync of contact fields and communication preferences, such as opt-outs and subscriber topics, from DailyStory back to Salesforce.
By default, Salesforce sync is one-directional: Salesforce is the source of truth and its data always takes precedence in DailyStory. Bi-directional sync of contact fields and communication preferences is supported, but is not enabled by default. It requires additional Salesforce write permissions and per-field configuration. See Bi-directional sync below.
Configure Salesforce Integration
There are several steps required to configure DailyStory and Salesforce integration. These steps are detailed below.
Create a Salesforce App
- Log into your Salesforce account with administrative rights, and go to the Salesforce Setup screen.
- On the left menu, select
Platform Tools > Apps > App Manager:

- Next, click "New Connected App"
- Complete the Basic Information form for the connected App
- Enter the name
DailyStory Connected Appas the name of your application.
The API Name should be automatically set. If not, enter DailyStory_Connected_App as the API name.
- Set the contact email to your email address.

- Optionally set other fields:
Logo image URL: https://ds-cdn.azureedge.net/files/brand/125x125.png
Icon URL: https://ds-cdn.azureedge.net/files/brand/16x16.png
Info URL: https://docs.dailystory.com/integrations/salesforce
Description: Used to connect DailyStory and Salesforce
- Complete the API form for the connected App
- Check
Enable OAuth Settings. This will expand the list of available settings (see the screenshot below). - Set the
Callback URLto the following value:
βhttps://app.dailystory.com/API/Public/OAuthCallback/76db0921-55f1-4283-8017-7bd6b6abcbed
- Add all of the
Available OAuth Scopesto theSelected OAuth Scopes. This ensures that DailyStory has the ability to create leads and read other data from Salesforce.
These authorization scopes ensure DailyStory has enough permission to perform existing actions, as well as for planned integrations. Write scopes are required if you plan to enable bi-directional sync.
- Check
Include ID Token, and checkInclude Standard Claims,Include Custom Attributes, andInclude Custom Permissions.

- Click the Save button. It can take 2 to 10 minutes for your application to get set up in Salesforce.
- After saving your new Salesforce app, you should have a view similar to this:

- Copy the Consumer Key and Consumer Secret
Important: The Consumer Key and Consumer Secret are required for configuring the integration with DailyStory.
Find your Salesforce Instance Key
The Salesforce instance key is the identifier that is used when accessing your Salesforce instance.
- Start by logging into your Salesforce account. Copy the unique name in the URL, in the case "dailystory-dev-ed".

- Navigate to the following URL and enter the text from step 1
https://status.salesforce.com/

Click the magnifying glass to retrieve the results:

In this case the Instance Key is NA75.
Important: The Instance Key is required for configuring the integration with DailyStory.
Enable Salesforce Integration in DailyStory
- Log into DailyStory and navigate to Account Settings > Integrations > Salesforce
- Click on Salesforce:

- Enter the values for Consumer Key, Consumer Secret, and Instance Key from the steps above.
- The Api Version is automatically set to v56.0, but can be changed to another version.
- Click the "Authorize" button (note this may require you to login to Salesforce again)
Once the authorization is complete, you are redirected back to the DailyStory Salesforce integration screen.
At this point the setup is complete and your Salesforce data will begin syncing.
Fields synced from Salesforce
When Salesforce integration is enabled, DailyStory automatically syncs data from Salesforce.
RecommendedOut of the box, sync runs one-directionally from Salesforce into DailyStory, and Salesforce data is always the "source of truth." To also write contact field changes and communication preferences from DailyStory back to Salesforce, see Bi-directional sync below.
Standard fields
DailyStory will sync the following standard fields from Salesforce: first name, last name, email, address, city, state, postal code, country. DailyStory also will automatically geocode (calculate the latitude and longitude) the contact record.
Salesforce-specific fields
In addition to standard fields, the following Salesforce-specific fields are synced. These fields are used for personalizing content, running automations or building segments.
| Field | Description |
| Salesforce Id | The unique identifier of the contact in Salesforce. Accessible in personalization as profile.salesforce_id. |
| Account Id | The account id of the contact in Salesforce. Accessible in personalization as profile.salesforce_account_id. |
| Account Owner Id | The id of the account owner of the contact. Accessible in personalization as profile.sfdc_accnt_owner_id. |
| Account Owner Email | The email address of the account owner of the contact. Accessible in personalization as profile.sfdc_accnt_owner_email. |
Extended Field Mappings
DailyStory will automatically populate common Salesforce fields that correspond to properties of a DailyStory lead, such as email address, for example.
However, if you are using a custom form or setting extended lead properties, you may want to publish these into Salesforce as well. This is precisely what the Advanced Configuration option for Extended Field Mappings does.
For example, if you are capturing values for CurrentSubscribers and you have a Salesforce custom field called NumberOfSubscribers__c, you can configure DailyStory to populate that field in Salesforce when a lead is added from DailyStory.

Bi-directional sync
By default the integration syncs in one direction: Salesforce into DailyStory. DailyStory can also write changes back to Salesforce, so that updates made by your marketing team, or by contacts themselves through a preference center, a form, or an unsubscribe link, are reflected on the Salesforce Contact record.
What syncs back to Salesforce
- Contact field updates. Changes to mapped contact fields in DailyStory are written to the corresponding fields on the Salesforce Contact record.
- Communication preferences. Opt-outs, opt-ins, and subscriber topic preferences captured in DailyStory are written back to Salesforce, so both systems reflect the same consent state.
Email engagement activity, such as opens and clicks, and campaign membership are not written back as part of this configuration. Engagement data is available through the DailyStory reporting APIs and webhooks if you want to land it in Salesforce or a data warehouse.
What bi-directional sync requires
- Write permissions in Salesforce. The connected app must be authorized with OAuth scopes that permit writing, and the integration user's profile or permission set must have edit access to every field you intend to update. Read access is sufficient for the default one-way sync, but not for write-back.
- Per-field mapping. Each field that syncs back is configured explicitly in DailyStory under Account Settings > Integrations > Salesforce. Fields you do not map are never written to Salesforce.
Map only the fields you intend DailyStory to update. Because write-back modifies records in your Salesforce org, validate the mapping in a sandbox, or against a small set of test contacts, before enabling it in production.
Conflict resolution and sync frequency
Salesforce remains the source of truth even when bi-directional sync is enabled. If the same field changes in both systems between sync cycles, the Salesforce value wins and replaces the DailyStory value. This keeps Salesforce authoritative for constituent and customer data while still allowing DailyStory to publish the changes it owns, such as consent and preference updates.
Sync frequency is configurable. Contact DailyStory support if you need an interval other than the default, or if a specific field must propagate to Salesforce faster than the scheduled sync.