---
title: Salesforce app setup
description: Setup guide for Ren Alerts in Salesforce plugin.
---

[Skip to content](https://help.rensystems.com/salesforce-app-setup#main-content)

[Contact support](https://help.rensystems.com/kb-tickets/new?hsLang=en)

[![Ren Logo Light (1) (2)](https://help.rensystems.com/hs-fs/hubfs/Ren%20Logo%20Light%20(1)%20(2).png?width=120&height=38&name=Ren%20Logo%20Light%20(1)%20(2).png)](https://help.rensystems.com?hsLang=en)

Open main navigation

Close main navigation

- [Contact support](https://help.rensystems.com/kb-tickets/new)

 How can we help you?

- There are no suggestions because the search field is empty.

1. [Ren Help Center](https://help.rensystems.com/?hsLang=en)
2. [Enterprise configuration](https://help.rensystems.com/enterprise-configuration?hsLang=en)

# Salesforce app setup

This article covers the technical details of the Salesforce app. For an overview of the features, see [Salesforce app overview](https://help.rensystems.com/salesforce-app?hsLang=en). 

### Usage Configurations

This app has two usage configurations depending on your enabled scopes:

| Scopes | What's Enabled |
| --- | --- |
| `crm` | Sync Contacts and Accounts from Salesforce to Ren |
| `crm` + `crm_alerts` | Sync Contacts and Accounts **and** view alerts on Home, Contact, and Account pages |

**Key capabilities with `crm` enabled:**

- Manage and test the SOQL queries configured to sync contacts and accounts from Salesforce into Ren

**Key capabilities with `crm_alerts` enabled (in addition to the above):**

- View alerts on Contact and Account records as well as Ren feeds on the Salesforce Home
- Compose AI-assisted reach-out emails directly from an alert
- Share alert links with colleagues

> **Note:** This package is an API-only architecture. No Ren alert data is stored in Salesforce. All alerts are fetched live from the Ren API and rendered on-demand. The only data the app writes locally are optional error logs and optional email activity Task records (both `crm_alerts`-only — see [Data Written to Salesforce](https://claude.ai/chat/fc714754-b628-4b7e-addf-2e7416eb7c7b#data-written-to-salesforce) in the Reference section below).

#### Prerequisites

- Salesforce Enterprise Edition or higher (Lightning Experience required)
- A Ren organization account with CRM API keys (provided by Ren)

### Installation & Setup

#### ![](https://help.rensystems.com/hs-fs/hubfs/image-png.png?width=670&height=499&name=image-png.png)

Note: Only enabling `crm` for sync? Skip any step marked **crm\_alerts only**.

### Step 1: Install the Package

Install the RenAlerts managed package via the install URL provided by your Ren account team. On install, the **Ren Alerts Admin** permission set is automatically assigned to all active System Administrators.

### Step 2: Assign Permission Sets

- **Ren Alerts Admin** — confirm this is assigned to the admin(s) who will manage sync queries and settings (auto-assigned on install for System Administrators).
- **Ren Alerts User** *(crm\_alerts only)* — assign to end users manually or via a Salesforce Flow, so they can view alerts, compose emails, and share links.

### Step 3: Enter API Keys

Go to **Setup → Named Credentials → External Credentials → Ren API** and enter your `X-Ren-Access-Key-ID` and `X-Ren-Secret-Access-Key`.

### Step 4: Configure the External Client App

Go to **Setup → External Client Apps → Ren Alerts** and:

- Add relevant user profiles to "Selected Profiles"
- Set refresh token to "valid until revoked"
- Enable "Admin approved users are pre-authorized"

### Step 5: Configure Sync Queries

Set up the SOQL queries that define which Contacts and Accounts sync to Ren (use the `{current_user_id}` placeholder). See the Setup Guide's Query Configuration section.

### Step 6: Add Page Layouts *(crm\_alerts only)*

Add the Ren Alerts components to Contact/Account record pages and a Home page using Lightning App Builder.

### Step 7: Configure Optional Settings *(crm\_alerts only)*

Configure in Setup → Custom Metadata Types → Ren Alerts Settings → Defaults:

- **Email Preference** — Salesforce (send via Apex) or Mailto (open user's email client; default)
- **Track Email Activity** — Creates Task records for emails sent through Ren Alerts
- **Enable Error Logging** — Captures API errors in the Error Logs tab (available regardless of scope, but most relevant alongside alerts)

### Step 8: Connect Each End User

Each end-user must complete a one-time OAuth connection: **Ren Settings → Integrations → Connect Salesforce** in the Ren web app. This applies regardless of scope — it's what allows Ren to sync Contacts and Accounts from Salesforce.

Sandbox Testing

For testing in a sandbox, install the app as usual with the instructions above. When connecting a user account via OAuth, you'll be prompted to log in on the "[login.salesforce.com](http://login.salesforce.com)" page. For sandbox testing only, select "Use Custom Domain" then use your sandbox URL like `https://your-salesforce-domain.sandbox.my.salesforce.com`. This will direct you to the appropriate login page to connect your sandbox user account into Ren.

Troubleshooting

### Sync Issues (`crm`)

| Symptom | Likely Cause | Resolution |
| --- | --- | --- |
| "Unable to reach Ren API" | Named Credential or External Credential not configured | Verify the Named Credential URL and API keys |
| HTTP 401 or 403 errors | Invalid or expired API keys | Re-enter API keys in the External Credential |
| Dry-run query fails | SOQL syntax error or field not accessible | Verify query syntax and field-level security for the selected user |

### Alerts Issues (`crm_alerts`)

| Symptom | Likely Cause | Resolution |
| --- | --- | --- |
| "Connect Ren" shown to a user | User does not have a Ren account yet (common with SSO), or Salesforce email doesn't match the Ren account email | Ensure the user has signed up for Ren and that email addresses match across both systems |
| "Connect Salesforce to Ren" message | User hasn't completed the OAuth connection | User can click the “Connect” button the Salesforce component to be guided through steps or go to Ren Settings → Integrations → Connect Salesforce |
| "Contact support" error | `crm_alerts` scope not enabled | Contact your Ren account team to enable the scope |
| Alerts not loading | API timeout or rate limiting | Check the Error Logs tab for details; contact your Ren account team if the issue persists |

Error Diagnostics

- Enable error logging: Custom Metadata → Ren Alerts Settings → `Enable_Error_Logging__c` = true
- View logs in the Error Logs tab (Admin only) — filterable by date range and user email
- Export up to 2,000 log records as CSV

---

### Reference: How It Works

#### Authentication

The app includes a built-in OAuth app, so there is no need for your organization to create a Connected App or share OAuth credentials — Ren handles this automatically. The app uses Salesforce Named Credentials and External Credentials to securely communicate with the Ren API.

- Ren API keys (`X-Ren-Access-Key-ID` and `X-Ren-Secret-Access-Key`) are stored in an External Credential in your Salesforce instance — encrypted and platform-managed by Salesforce
- All API calls go over HTTPS to the configured Named Credential URL
- Each request is automatically scoped to the logged-in user's email address

#### How Users Connect

Each end-user must also have an active Salesforce ↔ Ren OAuth connection (Step 8 above). This OAuth connection allows Ren to sync Contacts and Accounts from Salesforce. This applies regardless of which scopes are enabled.

### Reference: Data Access

#### Read from Salesforce

| Object | Fields | Purpose | Scope |
| --- | --- | --- | --- |
| Contact | Id, FirstName, LastName, Email, Phone, Title, Account (Id, Name, Website) | Used when adding a Contact to Ren or searching for email recipients | `crm` |
| Account | Id, Name, Website | Used when adding an Account to Ren | `crm` |
| User | Id, Name, Email | Used in the admin query dry-run tool | `crm` |
| PermissionSetAssignment | Id, AssigneeId, PermissionSetId | Used during post-install to assign admin permissions, and in the setup guide to verify user permission set status | `crm` |

All SOQL queries run with `WITH USER_MODE`, meaning they respect your org's field-level security and sharing rules.

#### Data Written to Salesforce

| Object | When | Purpose | Scope |
| --- | --- | --- | --- |
| Task | Only when email activity tracking is enabled | Logs email outreach as a Task (Subject, Description, Contact link) | `crm_alerts` only |
| `Ren_Error_Log__c` (custom) | Only when error logging is enabled | Captures API errors for admin diagnostics | Either |

The app does **not** create or modify Contact or Account records, create custom fields on standard objects, or write to any standard object besides Task (and only when opted in).

#### Sent to Ren

- User email (for scoping requests to the correct user)
- Contact/Account IDs and names (when syncing entities to Ren or composing reach-out emails — the latter is `crm_alerts` only)
- SOQL sync query configuration (admin-defined queries that determine which Contacts/Accounts to sync from Salesforce to Ren)

### Reference: Permission Model

| Permission Set | Assigned To | Access | Required For |
| --- | --- | --- | --- |
| Ren Alerts Admin | System Administrators (auto-assigned on install) | Setup wizard, query configuration, error logs, settings | `crm` and `crm_alerts` |
| Ren Alerts User | End users (assigned manually or via Flow) | View alerts, compose emails, share links | `crm_alerts` only |

> **Tip:** Use a Salesforce Flow to auto-assign the Ren Alerts User permission set to new users, so you don't have to do it manually each time.

- [Getting started](https://help.rensystems.com/getting-started?hsLang=en)
- [Adding contacts](https://help.rensystems.com/adding-contacts?hsLang=en)
- [Feed optimization](https://help.rensystems.com/feed-optimization?hsLang=en)
- [Sharing, research, & outreach](https://help.rensystems.com/sharing-research-outreach?hsLang=en)
- [Enterprise configuration](https://help.rensystems.com/enterprise-configuration?hsLang=en)
- [Frequently asked questions](https://help.rensystems.com/frequently-asked-questions?hsLang=en)

[![Ren Systems](https://help.rensystems.com/hs-fs/hubfs/Untitled-1_WHITE_ON_BLACK.png?width=200&height=200&name=Untitled-1_WHITE_ON_BLACK.png "Ren Systems")](http://www.rensystems.com)

<https://x.com/ren_systems> <https://www.linkedin.com/company/ren-systems>

Copyright © 2025, Ren Systems