Core Concepts

Forge and Salesforce

Understanding how Forge and Salesforce work together is the most important concept in this documentation. Everything else builds on it.

Salesforce is the system of record

Forge is a stateless web application. It holds no permanent copy of your event data. Every record — events, tickets, attendees, sessions, forms, payments — exists in Salesforce and is fetched by Forge on demand. When you make a change in Forge, it is written to Salesforce immediately. When someone registers on your public event page, the registration is written to Salesforce by the Blackthorn Events managed package.

Three managed packages, one experience

Forge surfaces data from up to four Blackthorn managed packages: Events (conference360__), Payments (bt_stripe__), Base (bt_base__), and Fundraising (bt_fundraising__, beta). Each package installs its own Salesforce objects, fields, permission sets, and Apex code. Forge presents them as a unified interface.

What lives where

Data typeWhere it livesNotes
Event recordsSalesforce (conference360__Event__c)Fetched by Forge on every page load
Attendee names and emailsSalesforce (Contact / Lead / conference360__Attendee__c)PII — never cached in Forge's Postgres
Payment transactionsSalesforce (bt_stripe__Transaction__c)Card data never stored anywhere — gateway only
Discount codesSalesforce (bt_stripe__Code__c)Read and written by Forge
Form definitionsSalesforce (conference360__Form__c)Written by Forge; answers written to Salesforce fields
Session dataForge's Postgres (Forge Forms engine) + SalesforceForm answer payloads route to Salesforce; no PII in Postgres
Auth tokensForge's Postgres (sealed) + Redis (short-lived)Never stored in plaintext; never contain PII

Deep links to Salesforce

On every record detail page in Forge, you'll find a Salesforce link icon (the cloud icon) next to the record name. Clicking it opens the native Salesforce record in a new tab. This is available on events, attendees, tickets, sessions, speakers, sponsors, forms, and payment records.

The Salesforce link icon appears next to every record — click it to jump to the native Salesforce record view.
The Salesforce link icon appears next to every record — click it to jump to the native Salesforce record view.

Bidirectional changes

You can edit records in either Forge or Salesforce. There is no sync delay or conflict resolution — both interfaces write to the same underlying Salesforce object. However, changes made in Salesforce are not pushed to Forge in real time; you'll see them after a page refresh. If you have Salesforce automations (Flows, Triggers, Process Builder) that modify event-related records, those changes will be reflected in Forge the next time the page loads.

Salesforce automations and Forge

Any Salesforce automation that fires on conference360__ objects will work as expected. Forge does not bypass triggers, flows, or validation rules. If a validation rule prevents a save in Salesforce, Forge will surface the error message to the user.

Validation rules can block Forge actions

If your org has custom validation rules on conference360__ objects, those rules apply when Forge tries to save a record. If users see unexpected save errors, ask your Salesforce Administrator to check for validation rule failures in the debug logs.