Integrate with Salesforce
Permissions
In order to integrate Salesforce with Tofu, the user that will be authorizing the integration MUST have the following permission set. This can be created or edited by a Salesforce admin.
- Create/edit Permission Set
- Click Setup → Permission Sets.
- Click New or select an existing permission set.
- Name your permission set (e.g., “Tofu Integration Access”).
- Enable Uninstalled App Permission
- In the permission set, click System Permissions.
- Click Edit.
- Search for and select Approve Uninstalled Connected Apps.
- Click Save.
- Assign Permission Set
- Click Manage Assignments.
- Click Add Assignments.
- Select at least 1 user who needs Salesforce integration access.
- Click Assign.
The user assigned for the integration will also need the following permissions:
- Connect with Tofu through OAuth
- The user must have permission to authorize and integrate with OAuth-connected apps.
- View Lists and Reports
- Tofu can import lists or reports directly from Salesforce. This requires read access to both lists and reports.
- Read and Edit Access on Account, Contact, and Lead Objects
- Tofu retrieves data from these objects and may update them during exports. Read and edit permissions are required.
- Read and Edit Access on Custom Fields
- Tofu writes exported data into custom fields created for Tofu such as “tofu_body_1”, “tofu_body_2”, etc. The user must have read and edit access to these fields.
- View Setup and Configuration
- This permission enables Tofu to access the Salesforce Describe API, which provides metadata about objects and fields.
- Access to Required Fields for List and Report Imports
- To import a list or report from Salesforce into Tofu, the integration user must have access to all fields used in the report filters, as well as all fields being imported into Tofu.
- (Optional) Create Custom Fields
- Tofu can automatically create the custom fields it needs within Salesforce. If you prefer to create them manually, this permission is not required.
- If you do choose to manually create fields for Tofu, here is a list of fields we need.
Connect Tofu with Salesforce
Once all of the above is completed, go to the org settings within Tofu (this link here) and follow the steps below to login to your Salesforce and complete the integration:
Click “Connect” to the right of Salesforce

Click “Connect” on the top right

Choose “Salesforce Production Account” and log in

Once connected, you should see the screen below

Troubleshooting
If you see an error like
- “app must be installed into org” or
- “OAUTH_APP_BLOCKED” or
- “OAUTH_APPROVAL_ERROR_GENERIC”,
the Salesforce admin will need to install the Tofu connected app following the steps below
- In Setup → Connected Apps OAuth Usage, search for “Tofu”
- If it shows an Install button, the app is currently uninstalled → it must be installed.
- Click Install, review details, confirm install.
- Then configure access:
- go to Setup → Manage Connected Apps → Tofu → Edit → OAuth Policies → Permitted Users, choose All users may self-authorize
Create custom fields for Tofu in Salesforce
Tofu can automatically create the Salesforce custom fields it needs. To do this, follow the steps below:
Go to Token Management → Mappings → Create Fields

The pop up (see below) will provide you with the number of fields needed on the account, lead, and contact objects for the email body, email subject, and URL for landing pages. You can add more if you’d like to start with more than the default. Click “next” to proceed.

On the next screen, click “Create Fields”

Alternatively, you can also manually create fields for Tofu. Here is a list of fields needed for the integration.
Map Salesforce with Gong Engage
Once the custom fields for Tofu have been created in Salesforce, take the steps below to map these fields in Gong Engage.
- In Gong, go to Admin center → CRM settings → Data import.
- Click into Account on the left hand side.
- Find the custom Tofu fields by scrolling or typing in the search bar.
- Select “Create placeholder” for each custom Tofu field.
- Select “Save”.
- Repeat steps 2 through 5 for Contact and Lead objects.

Complete mapping in Tofu
Once steps 1 and 2 have been completed, we need to finish the integration set-up by going into Tofu to mirror the mapping that was done between Salesforce and Gong Engage.
Otherwise, follow the steps below to complete:
- Go to Token Management → Mappings → Choose “Other” for Platform → Sync Tofu Fields
- Once the fields are sync’d, click Add Mappings for each Object

- For each Salesforce object type, add the corresponding custom Tofu field created in Gong Engage (Other column) to the custom Tofu field created in Salesforce (Salesforce Custom Field column).

Token Management
This is a step-by-step guide to using Tofu’s Token Management system to track and recycle personalization tokens across your email campaigns. This makes it easier to manage tokens for you or your ops team.
Since you are using Salesforce, you likely have a limited number of custom fields available for Tofu personalization tokens. Token Management gives you visibility into which tokens are in use and which are ready to recycle, so you can avoid conflicts across campaigns and teams.
Bootstrap Tokens
For Salesforce, we often work with customers to create tokens in advance, during the onboarding process.

Access the Token Management interface
Navigate to the Token Management section in Tofu. This central hub shows all tokens created for Tofu personalization across your organization.
You’ll see two main views: In use tokens (organized by campaign) and All tokens (a full table view of all tokens).

Manage active campaigns and free up tokens
The In Use Tokens page is where you track active usage and recycle tokens once a campaign is complete. This is one of the most important workflows for maintaining clean token operations.

In this view:
- Tokens are grouped by campaign
- Each campaign shows the associated emails and tokens such as Tofu_content_1, Tofu_content_2, etc.
- This view only displays active campaigns and autopilot campaigns
- Autopilot campaigns remain active automatically and cannot be marked as complete while they are running
Once a campaign has finished sending:
- Locate the campaign in the In Use Tokens view
- Click the option to mark tokens as available
- A confirmation modal will appear:
“Once marked as available, tokens will be ready for use in another campaign. The email and campaign associations will be saved in history.” - Select Yes, mark as available
The tokens will now move to an Available status and can be reused in future campaigns.
View all tokens, check history, and archive unused tokens
The All Tokens table gives you a comprehensive view of your personalization field inventory. This is where you can audit usage, confirm availability, and manage long-term token hygiene.

In this view, you can:
- See all tokens in one place
- Check which campaigns a token has been used in
- Confirm whether a token is available or in use
- Archive tokens you no longer want Tofu to use
- View up to 10 tokens per page
Before reusing a token, you can review its history:
- Click the calendar icon next to the token
- The history modal will show:
- Which campaigns and emails used the token
- The number of targets the email was sent to
- When the token was marked as available
This allows your team to confidently reuse tokens while maintaining visibility into past usage.
Monitor token status during campaign creation
When you’re setting up personalization in a campaign, Tofu will show you which tokens are ready to use and which are currently in use.
Token status appears as:
- Ready to use: Token hasn’t been used yet, or was marked as available after a previous campaign
- In use: Token is associated with an exported email. Hover over the status to see export details like target count and date
- Autopilot: Token is being used in an active autopilot campaign. Hover to see when it last ran
If you select more personalization components than you have available tokens, a warning banner will appear in the personalization setup to alert you. This prevents you from accidentally creating conflicts or running out of tokens mid-campaign.