Skip to content

Salesforce setup guide

When to use this guide: Use this guide when you are onboarding OutboundSync or validating initial setup.

Here is every step required to connect your new OutboundSync account with Salesforce (SFDC) and start syncing data.

If sync or API errors appear after setup, use Troubleshooting and check OutboundSync logs before contacting support. If you disconnected Salesforce and need to reconnect, use Connect or Reconnect on the existing profile — do not Delete and Create a new one. See Re-authorize your Salesforce account. For API volume planning, see How many API calls does OutboundSync use?. Keep the authorizing Salesforce user (or a dedicated integration user) active — see Disconnect CRM after connecting to OutboundSync?.

This guide is broken into five major steps:

  1. Create client app in Salesforce: Create an external client app in SFDC.
  2. Connect app in OutboundSync: Connect your app.
  3. Create a source in OutboundSync: Create a source.
  4. Verify activity in Salesforce: Check your data synced and enable visibility.
  5. Connect Sales Engagement Platform: Add your source URL to get data.

This is designed to be self-guided for users creating a test account. However if you are interested in getting help from our team, please contact service@outboundsync.com .

If you do not have an account yet, follow Create your OutboundSync account first. OutboundSync uses passwordless email login at app.outboundsync.com — there is no separate sign-up page, and new accounts are created automatically on first successful login.

If coworkers need to see the same Salesforce-backed sources and logs after you connect, their own sign-up email is not enough on its own — see How teammates get OutboundSync account access. Agencies and consultants setting up a client org should also read Agency and consultant access handoff.

Before beginning, you need System Administrator access (or equivalent) plus permission to create and view External Client Apps. At minimum your profile or permission set should include:

  • Create, Edit, and Delete External Client Apps
  • View All External Client Apps
  • View All External Client Apps, View Their Settings, and Edit Their Policies

If Consumer Key or Consumer Secret stay hidden after setup, see Salesforce Consumer Key and Secret not visible.

  1. Login to Salesforce.
  2. Navigate to Setup: Click the gear icon in the top right corner, then click Setup.
  3. Open App Manager: In Quick Find, search for App Manager (under Platform Tools → Apps), or search for External Client App Manager.

If you do not see App Manager or External Client App Manager, contact your Salesforce Admin and confirm the External Client App permissions above.

If OutboundSync already exists in App Manager

Section titled “If OutboundSync already exists in App Manager”

Some orgs set up OutboundSync before Salesforce introduced External Client Apps and already have a Connected App named OutboundSync. You do not need to create a new app if one exists.

  1. In App Manager, find OutboundSync in the list.
  2. Open the dropdown on the right and select View.
  3. Click Manage Consumer Key and Secret (you may need to verify your identity).
  4. Copy the Consumer Key and Consumer Secret for the next step.

If you cannot view the Consumer Key or Consumer Secret, see Salesforce Consumer Key and Secret not visible.

  1. Select New External Client App.

  2. Enter the following Basic Information:

    1. External Client App Name: OutboundSync
    2. API Name: OutboundSync
    3. Contact Email: Your preferred email address
    4. Distribution State: Local
Salesforce External Client App Basic Information with External Client App Name, API Name, Contact Email, and Distribution State Local
  1. Enter the following API / OAuth information:

    1. Check the box for Enable OAuth.

    2. Enter the following Callback URL: https://app.outboundsync.com/oauth/salesforce

    3. Add the following OAuth Scopes:

      1. Full Access (full)
      2. Manage user data via APIs (api)
      3. Perform requests at any time (refresh_token, offline_access)
    4. Leave Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows enabled. Salesforce often checks this by default and greys it out. OutboundSync uses PKCE, so you do not need to uncheck it or contact Salesforce Support.

    5. Click Save and then Continue.

Salesforce External Client App OAuth settings with Enable OAuth, Callback URL, and selected scopes (api, full, refresh_token)
  1. Open Settings → OAuth Settings and click Consumer Key and Secret.
  2. Complete any verification code or 2FA prompt.
  3. Copy the Consumer Key and Consumer Secret.
Salesforce Manage External Client App Consumer Details with Consumer Key and Consumer Secret (values redacted)

If you are unable to view the Consumer Key or Consumer Secret, see Salesforce Consumer Key and Secret not visible.

Keep this information nearby — you will enter it into OutboundSync next.

  1. Sign in to OutboundSync (or create an account on first login).
  2. Go to Connected accounts → Salesforce.
  3. Copy the Consumer Key and Consumer Secret from Salesforce and paste them into their respective fields in OutboundSync.
  4. Find Your Salesforce Domain: In Salesforce, click your profile image in the top right corner and copy the Domain URL under your name.
Salesforce profile menu with domain URL under the user name
  1. Enter Domain URL in OutboundSync: Go back to OutboundSync and enter the Domain URL, adding https:// at the beginning.

For example: my.salesforce.com becomes https://my.salesforce.com

  1. Click Create when you have entered all the criteria.
OutboundSync Salesforce Settings with Domain, Consumer Key, Consumer Secret, Create button, and connected accounts table
  1. Log out of any tabs you have open for Salesforce.
  2. Click Connect on the newly added Salesforce account in OutboundSync. This will prompt you to log in to Salesforce.
OutboundSync Salesforce Settings with acme-outbound.my.salesforce.com Not connected and a Connect button for alex.sf@example-outbound.test
  1. Select Allow on the list of permissions.

Create alone leaves Status as Not connected. After a successful OAuth redirect, expect a Salesforce account connected success message, Status Connected, the authorized Email filled in, and the action label Reconnect. If Status stays Not connected or the connection fails, fix the email/SSO match below and try Connect again — or see Re-authorize your Salesforce account.

OAuth user must match your OutboundSync login

Section titled “OAuth user must match your OutboundSync login”

The Salesforce user who signs in during Connect must be the same user logged into OutboundSync (same email address). Salesforce sets Created By and Last Modified By on synced records from that OAuth user.

Log into Salesforce as that user in the same browser session before clicking Connect. If you are logged into Salesforce as a different user, OAuth will fail or connect the wrong identity.

SSO and integration users: If your org routes Salesforce login through SSO (for example Okta), the integration user must be able to sign into Salesforce through that path. Resetting a password only in Salesforce may not work when SSO manages credentials. If SSO blocks the integration user, reconnect with a human admin user — Created By will reflect whoever completes Connect or Reconnect. See Identifying OutboundSync activity in Salesforce for how Created By differs from webhook owner.

Before you create the source, decide how much engagement activity should land in Salesforce. This is separate from Upsert or Update Only (whether unmatched prospects become new Leads/Contacts — see below).

  • Sync everything. Send every event your sales engagement platform emits (sends, opens, clicks, replies, and related activity). Best when you want full history, omnichannel follow-up, and attribution that includes non-responders.
  • FILTERED / category allowlist. Hold activity until a lead hits an allowlisted category (for example interested or positive). Use this when you want tighter CRM hygiene and only qualified leads in Salesforce. Enable FILTERED Approved events plus a Category-based filter allowlist on the source.

Read next:

In OutboundSync, go to Sources.

OutboundSync Create source modal with Salesforce profile selected and mapping canvas
  1. Select account: Select your Salesforce account from the dropdown.

  2. Select owner: The owner is the Salesforce user that newly created Leads, Contacts, Accounts, and Tasks are assigned to by default. This can be a person or an integration user created for OutboundSync. This is separate from Created By, which reflects whoever completed OAuth — see Identifying OutboundSync activity in Salesforce.

  3. Custom Fields: Optionally, OutboundSync has the ability to create and write to a group of custom fields with metadata related to your campaigns. You can also select which objects you want to write those fields to (e.g. Contact, Lead, or Task). We highly recommend performing this action with System Administrator-level permissions.

  4. Select Email Service. This is your Sales Engagement Platform (e.g. Smartlead, Instantly, EmailBison, Salesforge, or GetSales).

  5. Select Salesforce Object. You can log activities as either Tasks or EmailMessages.

    1. Task Object (Recommended): When writing to the Task Object, you can log data with a user-configurable subject line that can be used for Flows and Reports. While counterintuitive based on the name “tasks”, this is the method that most integrations use in Salesforce in general.
    2. EmailMessage Object: This object is more intuitively named and for smaller organizations, it may be preferred. Note that when writing to the EmailMessage Object, it has fewer options when it comes to Flows and Reports. However the metadata provided by this object is also more clear to a user and in some cases—especially for EMAIL_SENT and EMAIL_REPLY - it is more intuitive that these be logged as emails.
  6. Upsert or Update Only Salesforce Object: If you select Upsert, it means you want OutboundSync to search for Leads or Accounts/Contacts, and either update them if one is found or create a new one if one is not found. Update Only means that OutboundSync will search and will only update existing Leads or Accounts/Contacts.

If you select Upsert, OutboundSync will try to find Contact or Lead by ID, and then by email as a fallback, and ultimately create a new Lead or Contact if no results are found. If you select Update Only, OutboundSync will only search and update existing Leads or Contacts — it will not create unmatched Leads or Contacts, and it will not create an Account for a matched Contact that has none.

  1. Forwarding (optional). This is built for Smartlead users due to constraints on the number of permitted webhooks. Register URLs under Connected accounts → Forwarding destinations, then attach them on the source. Read more about forwarding here.

Read more about writing to the Task Object in Salesforce here.

Read more about writing to the EmailMessage Object in Salesforce here.

Enable Task Type field visibility (before Sync Test)

Section titled “Enable Task Type field visibility (before Sync Test)”

If you selected the Task object (recommended), make the standard Task Type field visible to your integration user’s profile before you run Sync Test. OutboundSync writes to Type when creating activity. If the field is hidden, Salesforce returns INVALID_FIELD: No such column 'Type' on sobject of type Task and the test fails.

  1. In Salesforce, go to Setup → Object Manager → Task → Fields & Relationships.
  2. Open the Type field.
  3. Click Set Field-Level Security.
  4. Check Visible for System Administrator (and the profile used by your OAuth / integration user, if different).
  5. Save.
Salesforce Set Field-Level Security for Task Type with Visible checked for profiles

If you see permission-set FLS controls instead of profile checkboxes, or you use the Enhanced Profile UI, follow Fixing the Salesforce task Type field error.

Click here for a detailed guide on how the Testing Modal works.

We’ll see this in Salesforce later. But while we’re here in OutboundSync, click Sync test to send a test webhook payload over to your Salesforce account.

OutboundSync Testing Modal for Smartlead showing Email Sent event type, Test Sync, recipient name Jordan Lee, and email jordan.lee@example-outbound.test.

Configure the payload if you want to modify it, or just scroll down and click Test Sync to send it.

If Sync Test fails with transaction was rolled back or another operation in the same transaction failed, see Fixing Salesforce transaction rolled back errors.

If Sync Test fails with INVALID_FIELD / No such column 'Type', complete Enable Task Type field visibility or see Fixing the Salesforce task Type field error.

First, go to Salesforce and search for the contact used in the test.

Salesforce global search finding the contact used in Sync Test

Next, open the contact in Salesforce and view their Activity to ensure everything synced correctly. If no Task appears and Sync Test returned a Type field error, confirm Task Type field-level security first.

Salesforce contact Activity timeline after a successful OutboundSync sync Salesforce activity record detail synced from OutboundSync Salesforce activity subject and comments showing synced email content

To finish the process, add the newly created OutboundSync source URL into your Sales Engagement Platform.

Find instructions on how to do with with the following supported platforms:

Salesforge beta and GetSales beta are also available right now as direct one-way integrations for email and social activity. Dedicated guides are coming later, so use the onboarding steps provided by the OutboundSync team for current setup.

It is vital that you properly add and configure your webhook in your Sales Engagement Platform. If you don’t do this, OutboundSync won’t receive data and your data will not show up in Salesforce.

This guide is the self-serve setup path. For optional guided onboarding on a paid rollout, contact support.

Once sources are connected and activity is landing in Salesforce:

  1. Run a webhook test payload to confirm delivery end to end.
  2. Identify OutboundSync activity in Salesforce (Created By, Task subject, ownership).
  3. Build self-serve reports from the Salesforce reporting hub — Tasks plus optional custom fields. There is no packaged Salesforce dashboard today (unlike HubSpot Supered packages).
  4. Wire CRM-driven block lists when ready — Updating block and exclusion lists.