Everything you need to connect RevSend to Salesforce, sync campaigns, and answer the security questions your team will ask. Setup takes about 5 minutes. You need System Administrator access in Salesforce.
What the integration does
RevSend connects to Salesforce so gift activity tied to a Contact, Lead, or Campaign shows up inside Salesforce on its own. Reps and RevOps get a live record instead of a side spreadsheet. RevSend handles the parts that involve someone's home address, so those never land in your org.
The connection is a Salesforce Connected App using the OAuth 2.0 Authorization Code flow with PKCE (Proof Key for Code Exchange). A Salesforce admin authorizes it once. RevSend then reads and writes a limited set of objects and fields through Salesforce's standard REST API, using a dedicated, non-human integration user rather than any individual's login.
The standard configuration does not require a managed package, a custom object, or Apex code. If you want something beyond the standard objects below, like a status field or button surfaced on the Contact record, we scope and approve that with your Salesforce admin before anything gets deployed.
Part 1: Connect Salesforce to RevSend
Click Integrations
Click View
Click Connect Salesforce for a production org, or Connect Sandbox for a sandbox org
Log in as your Salesforce admin and approve the access request
That is the whole connection. If you have a sandbox, connect and test there first before you touch production.
Part 2: Campaigns and CRM sync
RevSend campaigns can tie into Salesforce campaigns, so gift activity rolls up into the campaign reporting your team already runs.
Before you start: Marketing User access
Your RevSend integration user needs the Marketing User permission in Salesforce. Both creating and linking a campaign require it. This only matters if you are using campaigns. If you are not, skip to Part 3.
To set it: Setup, then Users, open your RevSend integration user, click Edit, check Marketing User, and save.
Linking a RevSend campaign to Salesforce
When you create a campaign in RevSend, the Salesforce Campaign panel gives you two options. Both are optional. If you skip them, the RevSend campaign runs without a Salesforce campaign attached.
Check Create a new Salesforce campaign using this campaign's name. RevSend creates the campaign record in your org for you.
Or search under Select an existing Salesforce campaign and pick one already in your org.
Campaign member status
Once the campaign is linked, recipient order statuses are written to Salesforce Campaign Members automatically whenever a Salesforce contact is selected. There is nothing to trigger. That sync is what rolls gift activity into the standard Salesforce campaign reporting your team already runs.
Part 3: Slack notifications (optional)
Gift-status notifications (link clicked, address submitted, shipped, delivered) can be delivered in Slack instead of, or alongside, email. This is off by default. If you turn it on, a Slack workspace admin installs a dedicated RevSend Slack app and authorizes it directly, the same as any other Slack app install.
Scope | What it allows |
chat:write | Send a message as the RevSend app, to notify a rep about their own gift activity. |
im:write | Open a direct message with a rep to deliver that notification privately. |
users:read | Look up workspace members so a notification reaches the right rep. |
users:read.email | Match a rep's Salesforce/RevSend email to their Slack account. This reads the workspace member directory, not just the notified rep, so your Slack admin should weigh it accordingly. |
RevSend does not read Slack messages, channel history, or files, and does not request scopes beyond the four above.
What access RevSend asks for
Scope | Salesforce label | What it allows |
api | Manage user data via APIs | Read/write access to the specific objects and fields listed below, via REST API. Nothing outside that list. |
web | Manage user data via web browsers | Supports the browser-based login screen when the admin authorizes the connection. |
refresh_token, offline_access | Perform requests at any time | Keeps the connection active without re-prompting login. Refresh tokens rotate automatically and expire after 30 days of inactivity, per Salesforce's own platform-wide OAuth requirements. |
RevSend does not request Full access (org-wide access), Data Cloud, Einstein, Pardot, Chatter, or any scope beyond the three above.
What RevSend reads from Salesforce
Object | Fields | Purpose |
Contact | Name, business email, company, title, address | Identify who a gift is for and personalize the send. |
Lead | Name, business email, company, title, address | Same purpose, prior to conversion. |
Campaign (optional) | Name, ID | Associate a gift send with the correct campaign for reporting, and list existing campaigns so you can link a RevSend campaign to one. |
What RevSend writes back to Salesforce
Object | Fields | Purpose |
Task | Gift status (sent, address submitted, shipped, delivered, redeemed), timestamp, related Contact/Lead | Gives reps and RevOps a record inside Salesforce instead of a side spreadsheet. |
Campaign (optional) | Name, ID | Create a matching Salesforce campaign when you choose that option while setting up a RevSend campaign. |
CampaignMember (optional) | Status | Syncs automatically whenever a Salesforce contact is selected, so gift activity rolls up into standard Salesforce campaign reporting. |
What the integration does not do
Does not store, transmit, or expose recipient home or shipping addresses in Salesforce. That data lives only inside RevSend's own systems.
Does not request Salesforce admin-level or org-wide ("Full access") scope.
Does not install a managed package, custom object, or Apex trigger as part of the standard configuration.
Where recipient personal data lives
RevSend holds the recipient's shipping address once it is submitted. Not Salesforce, and not the individual rep. Recipients enter their own address when they redeem a physical gift. Reps can see that a gift was sent and its status, and they never see the address itself. Addresses are used for fulfillment only. This is by design: it is what lets your reps and your Salesforce org avoid collecting or storing personal mailing addresses at any scale.
Security and compliance controls
SOC 2 Type II. Report available on request.
Dedicated, least-privilege integration user, scoped only to the objects and fields listed above via a permission set. No connection runs under a live employee's Salesforce login. Campaign sync additionally requires the standard Salesforce Marketing User permission on that integration user.
Field-level security enforced on the integration user's profile. Fields outside the read list are not exposed even if requested.
OAuth tokens are stored server-side and encrypted. They are never exposed to a browser or end-user device.
PKCE, automatic refresh token rotation, and a 30-day idle refresh-token limit are enforced on every connection, matching Salesforce's own mandatory OAuth hardening requirements.
All API traffic runs over TLS.
Every read and write the integration performs is logged and auditable.
A Data Processing Agreement (and Data Sharing Agreement, if required) is executed separately from this setup.
Optional add-on: the Send RevSend Gift button
A niche add-on that most teams skip. Everything above works without it. It is worth setting up only if your reps live inside Salesforce all day and you want a one-click send from a Contact or Lead record: they click the button, RevSend opens in a new tab with the recipient already filled in, and they pick a campaign and send.
Before you start
Connect RevSend to Salesforce first (Part 1). The button passes the Salesforce record ID to RevSend, and RevSend uses your connection to look up the recipient's details. Without the connection the button still opens, but nothing pre-fills. Reps can still pull up a record by typing the contact's name into the search box.
Step 1: Install the package
Click the link for the environment you are installing into.
Sandbox
https://test.salesforce.com/packaging/installPackage.apexp?p0=04tUl000001b2jp
Production
https://login.salesforce.com/packaging/installPackage.apexp?p0=04tUl000001b2jp
Log in when prompted, then choose Install for All Users and click Install. There is no password on the package, so you will not be asked for one.
Installation usually finishes in under a minute. Larger orgs sometimes get a "this app is taking a while to install" message and an email when it is done. That is normal.
Step 2: Add the button to your Contact page
The button does not appear anywhere until you place it. This is the step people miss.
Go to Setup, then Object Manager, then Contact
Click Lightning Record Pages
Open the page marked as the active org default, then click Edit
In the Components list on the left, scroll to the Custom section and find Send RevSend Gift
Drag it onto the page wherever you want it. Most teams that use it put it in the right-hand column near the top so reps see it without scrolling
Click Save
If the page was not already active, click Activation and set it as the org default
Step 3: Repeat for Lead
Same steps, under Object Manager, then Lead.
If your org has more than one record page per object, for example a different page per app or record type, add the component to each one your reps actually use. Checking the Assignments on each page tells you which is which.
Step 4: Test it
Open any contact record
Click Send RevSend Gift
A new tab opens on RevSend with the recipient already loaded
If the recipient's name and email look right, you are done. Repeat on a lead record.
Good to know about the package
What the package contains. One Lightning Web Component. No Apex, no triggers, no custom objects, no custom fields, and no changes to your existing page layouts beyond the component you place yourself.
What travels in the link. Only the Salesforce record ID. Recipient names, email addresses, and shipping addresses are never put in the URL. RevSend looks those up server-side through your Salesforce connection.
Updating the button. Unmanaged packages cannot be upgraded in place. If we release a new version we will send you a new install link along with the steps above.
Uninstalling. Remove the component from your Contact and Lead record pages, then go to Setup, Installed Packages, and click Uninstall next to RevsendGiftButton.
Troubleshooting
Campaigns are not syncing. The integration user is missing the Marketing User permission. See Part 2.
If you installed the optional Send RevSend Gift button:
The button is not on the record page. It has to be added manually, per object, in Step 2 of the button section above. If you did that and still do not see it, check that you edited the record page your reps are actually assigned to. Orgs often have several, and only one is the active default.
"This app is already installed." An earlier version of the package is present. Because this is an unmanaged package, Salesforce cannot install over the top of it. Remove the component from your Contact and Lead record pages first, uninstall the old package under Setup, Installed Packages, then install again. Salesforce blocks the uninstall if the component is still placed on a page, so the removal has to come first.
Nothing happens when a rep clicks it. The button opens a new tab, so a popup blocker is the usual cause. Allow popups for your Salesforce domain.
The recipient does not pre-fill. The Salesforce connection is missing, or the record has no email address. Check Settings, Integrations, Salesforce in RevSend.
The rep gets a RevSend login screen. They do not have a RevSend account yet, or they are signed in with a different email. The button does not create accounts.
Still stuck? Reach out to your RevSend contact or email [email protected] with your Salesforce org ID and a screenshot of what you are seeing.
