Skip to main content

Integration · Salesforce

Create Salesforce Cases With Session Evidence Attached

Every Salesforce Case from Relyv ships with a deep link to the session replay, the AI-drafted bug report, console + network evidence, and environment metadata. Customer-support teams and engineering teams work from the same source of truth.

What you get

Per-org OAuth with dynamic instance URL

Salesforce token exchange returns a per-org `instance_url` (acme.my.salesforce.com). Relyv persists it on the Connection and uses it for every subsequent API call — no manual host config, supports My Domain + sandbox + production orgs cleanly.

RecordType picker

When you connect, Relyv queries your Case RecordTypes via SOQL and surfaces them in the dropdown. Each Relyv project can be mapped to a specific RecordType so the correct picklists + fields apply to the new Case. Orgs without RecordTypes get a default option automatically.

AI bug report pre-filled

Subject = AI-written title (auto-truncated to 255 chars). Description = AI repro steps + environment + failing network + console errors + replay deep link. Status = New. Origin = Web. Priority mapped from severity.

Refresh-token rotation

Salesforce access tokens last 2 hours by default — Relyv's integration auto-refreshes on 401 from the API using the long-lived refresh token. No manual reconnection required.

Setup in four steps

  1. 1

    Connect Salesforce via OAuth

    A workspace admin clicks "Connect Salesforce" in Relyv settings. Standard Salesforce OAuth via login.salesforce.com (or test.salesforce.com for sandbox). We request the api + refresh_token + offline_access scopes.

  2. 2

    Map Relyv projects to Case RecordTypes

    After connect, Relyv lists your active Case RecordTypes (Customer Inquiry, Bug Report, Internal Request — whatever your org has). Pick the default for each Relyv project.

  3. 3

    Click "Send to..." from any session

    From the dock, the side panel, or the angular-viewer session page, pick Salesforce in the "Send to..." dropdown. Subject, Description, RecordType, and Priority are pre-filled.

  4. 4

    Case lands in Salesforce Lightning

    The Case appears in your Salesforce org with the AI repro + session evidence in the Description. The URL is the Lightning UI deep link (https://acme.my.salesforce.com/lightning/r/Case/<id>/view).

Implementation details

What gets attached to a Salesforce Case

AI-written Subject; AI repro + environment + failing network + console errors in the Description (32k char limit, more than enough); severity-mapped Priority (Critical/High → High, Medium → Medium, Low → Low); Origin = Web; Status = New; RecordType per project mapping; deep link back to the replay frame; optional attached Playwright spec (Pro+ feature) as a Case Comment.

Sandbox + production support

OAuth flows work against both login.salesforce.com (production) and test.salesforce.com (sandbox) — set the appropriate host in the connection step. The dynamic instance_url ensures every API call hits the correct org. My Domain orgs (e.g. acme.my.salesforce.com) work without additional configuration.

Permissions and security

OAuth scopes: api (CRUD on Case), refresh_token + offline_access (long-lived token rotation). No code, no Apex, no metadata access. Token rotation is automatic on 401; revoking the connected app from Salesforce admin instantly cuts access.

Frequently asked

Which Salesforce editions are supported?

Any edition with the Case object — Professional, Enterprise, Unlimited, Developer. Lightning Experience is the default URL target; Classic UI users get redirected automatically.

Does this work with Service Cloud Voice / Field Service / Health Cloud?

Yes — they all extend the standard Case object. The Wave-7 integration speaks the base Case schema, so Service Cloud + Health Cloud + Financial Services Cloud orgs receive the Relyv ticket as a Case with all standard fields populated.

How are custom Case fields handled?

The integration sets standard fields (Subject, Description, Status, Origin, Priority, RecordTypeId). Custom fields (e.g. `My_Custom_Severity__c`) can be populated via the integrations service's extra-fields hook — Relyv's severity is passed through and you map it to whatever custom field your org needs.

How does the API version pin work?

We target Salesforce API v60.0 (Spring '24). Newer fields ship backward-compatibly so staying current isn't mandatory; standard Case fields are stable across every version we've tested. Custom-field POSTs go through the same payload — no version-specific syntax.

Can my AI agent file Salesforce Cases via MCP?

Yes — Relyv is MCP-native. Claude, Cursor, and Continue call get_session_intelligence to read the session, then invoke the integrations service to create the Salesforce Case. The same flow a human triggers from the dock works for agents.

How is PII handled in the Case Description?

PII is masked on-device via 12-category regex + Luhn validation in the SDK (plus ONNX/WebGPU GLiNER deep-scan when the Relyv extension is installed) before bytes leave the browser. The Description that lands in Salesforce already has credit cards, SSNs, emails, IBANs, etc. redacted. EU + US data residency available; SOC 2 Type II in progress.

How does this differ from a Zapier Salesforce integration?

Zapier sees only high-level Relyv events and can't attach the AI repro or session evidence to the Case Description. Relyv's native integration (gt-relyv-integrations/internal/handler/providers/salesforce.go) speaks Salesforce REST + SOQL directly, posts the full evidence packet in one round-trip, and uses the dynamic instance_url so every API call hits the correct org — no Zapier subscription, no per-task billing, no third-party hop.

Ready to wire up Salesforce?

Every Salesforce Case from Relyv ships with a deep link to the session replay, the AI-drafted bug report, console + network evidence, and environment metadata. Customer-support teams and engineering teams work from the same source of truth.