Salesforce integration for Ruby AI

The Ruby AI Salesforce integration is a per-user CRM connection: each rep connects their own Salesforce, so what Ruby sees is exactly what that rep's sharing rules already allow. Ruby imports Accounts, Opportunities, Contacts and activity, and writes deal intelligence back onto the Opportunity.

At a glance

What Ruby AI reads from Salesforce

What Ruby AI writes to Salesforce

Account: Name, Website, Industry, NumberOfEmployees

Four Opportunity fields: Pain and Impact, Compelling Event, Risks, Recommended Actions

Opportunity: Name, Description, Amount, CloseDate, StageName, Probability, ForecastCategoryName

One ContentNote meeting summary per Opportunity, updated in place

Contact and OpportunityContactRole: name, title, email, phone, role

One ContentDocumentLink attaching that note to the Opportunity

Task, Event, EmailMessage and ContentNote linked to the Opportunity

Nothing else. Contacts, Tasks and Events are read-only

Why connect Salesforce to Ruby AI?

  • Per-user OAuth means Ruby inherits your Salesforce sharing model exactly. No new visibility surface to review.

  • Preview before apply. Every import shows what will change and lets you deselect individual fields and individual activities.

  • Your admin controls the field names Ruby writes to. Ruby reads a per-org config rather than assuming its own naming.

  • Sandbox and production are both supported.

How does Ruby AI use Salesforce?

Ruby queries Opportunity, Account, Contact, Task, Event, EmailMessage, ContentNote, ContentDocumentLink and OpportunityContactRole. All queries are field-filtered against a live describe, escaped, and scoped by the record IDs you selected.

Ruby resolves your Opportunity stage list four ways in order: the RecordType page layout, the object picklist, the stages actually in use in your org, then standard Sales Process defaults. Probability is clamped to 0 to 100. ForecastCategoryName maps to Ruby's forecast categories.

Ruby does not read Leads, Users, Campaigns, Cases or Quotes. Ruby requests only the api and refresh_token scopes, documented in help.salesforce.com/s/articleView?id=sf.....

What does Ruby AI put into Salesforce?

Four Opportunity fields. Pain and Impact, Compelling Event, Risks, and Recommended Actions, filled from the meeting analysis, deal health and sales strategy agents. Values cap at 32,000 characters.

A meeting summary ContentNote, attached to the Opportunity and visible to all users. Ruby creates the note once, then updates that same note on later syncs rather than stacking duplicates.

Every write is content-hashed, so nothing unchanged is rewritten. Ruby writes to no other object.

What does my Salesforce admin need to set up?

The four insight fields are custom long-text fields your Salesforce admin creates once, in the API names your org prefers. Ruby checks whether each field is writeable before every sync and skips any it cannot write, so a missing field degrades to note-only rather than breaking the sync.

For change notifications, an admin builds a Flow that POSTs to Ruby's webhook URL with the org's webhook secret. Ruby generates that secret at connect and it is rotatable from Settings.

How do I connect Salesforce to Ruby AI?

  1. In Ruby AI, go to Settings → Integrations → Salesforce.

  2. Approve the api and refresh_token scopes on Salesforce's authorization screen. Ruby uses PKCE, so the exchange is protected end to end.

  3. Ruby primes the field describe for your org so the first sync is already adapted to your custom fields. Search your Accounts inside Ruby and import a deal.

What can Ruby AI do with Salesforce?

Create Ruby accounts and deals from Salesforce records. Search your Accounts from inside Ruby by name, website or industry, filter to accounts with open Opportunities or specific stages, and create the matching Ruby account and deals in one step.

Import Opportunity history as deal context. Ruby pulls Tasks, Events, EmailMessages and ContentNotes linked to the Opportunity. Salesforce logs calls, emails and to-dos on one Task object, so Ruby reads TaskSubtype and files each one correctly rather than flattening them into a single pile.

Stakeholders come from OpportunityContactRole. Contacts on the Opportunity become Ruby stakeholders with name, title, email and phone. The Salesforce Role seeds the buying role, and Ruby never overwrites a role a rep set by hand or one derived from an actual meeting.

Ruby adapts to your org, not the other way round. Ruby runs a describe against your Salesforce at connect and only ever queries fields your profile can actually see. If a field is missing or restricted, Ruby drops it and retries instead of failing the sync. Custom stage vocabularies map per RecordType, so a non-standard sales process works without changing it.

Updates in Salesforce show up as pending. Point a Flow at Ruby's webhook and any Opportunity or Account change marks the linked Ruby deal as having updates waiting. You choose when to import, and Ruby shows a field-by-field diff before you do.

Frequently asked questions

What permissions does Ruby AI need in Salesforce?

Two scopes, api and refresh_token. Ruby reads only the nine SObjects listed above and writes only to Opportunity fields and ContentNote. Ruby never requests access to Leads, Cases, Campaigns or Quotes.

Does Ruby AI write to my Salesforce contacts?

No. Ruby reads Salesforce Contacts to build stakeholders inside Ruby, but never creates or updates a Contact, Task or Event in Salesforce.

Can Ruby AI see records I do not have access to?

No. Salesforce is connected per user, so every query runs as you and returns exactly what your profile and sharing rules allow. Ruby adds no visibility of its own.

Does connecting Salesforce require an admin?

Not to connect. Any rep can connect their own Salesforce. An admin is needed once, to create the four custom Opportunity fields Ruby writes to and to build the notification Flow. Without those, Ruby still imports and still writes the summary note.

Does Ruby AI work with a Salesforce sandbox?

Yes. Sandbox and production are both supported, set by the login URL your deployment points at.

Need help connecting Salesforce?

Open Learn Hub in the Ruby AI app for a step-by-step walkthrough, or use the support widget in the bottom-right corner of the app. You can also email the team at support@heyruby.io.

Related integrations

  • HubSpot if your team runs on HubSpot instead

  • Google Calendar and Outlook Calendar, which match meetings to the Opportunities Ruby imported

  • Gong, the highest-fidelity source for the calls behind those Opportunities