Salesforce

Salesforce Sync & Cache Audit

This page is the full technical audit of how Forge keeps your Salesforce data in sync — every Salesforce object across Blackthorn's Events, Payments, Fundraising, and Base packages, cross-referenced against what Forge actually caches, how fast, and what to check if something looks like it isn't syncing. It's more detailed than the summary in the Sync & Caching section above — this is the reference version for anyone who wants the full picture, including your own technical/admin team.

As of

This audit reflects Forge's sync/cache configuration as of 2026-09-22. Object names below are the real Salesforce API names from Blackthorn's managed packages, so this page intentionally keeps technical identifiers rather than only plain-language names.

How sync & caching actually works

Forge has three structurally distinct read-cache mechanisms, plus one shared write path. None of them are bidirectional — every write goes through a separate path and then (sometimes) explicitly invalidates a cached row.

  • A generic, tenant-wide Salesforce-to-Postgres object cache. This is where the large majority of cached objects land (86 of them as of 2026-09-22 — see the table below). It is read-only from Salesforce's perspective — this path never writes back to Salesforce.
  • Feature-specific computed-metrics caches (dashboard and pipeline/ROI summaries) — these don't store raw Salesforce records; they run live queries against Salesforce on each refresh and persist a computed summary.
  • Short-lived, Redis-only response/lookup caches (event basics, display names, session-meta, related-lists, edit-access) — invalidated explicitly whenever the underlying data is written.
  • The write path (Forge to Salesforce): a synchronous path for most writes, and a durable, asynchronous write-through queue for a defined set of objects (mainly Payments, Donations, Fundraising, and Auctions) that's drained by a background reconciler.

Login/session warm-up: whenever a user with a session active in the last 30 days causes Forge to boot up, all 86 cached objects get an incremental sync attempt for that tenant, bounded per-tenant so it can't run indefinitely. This is a tenant-wide warm, not scoped to the person logging in — today it's all-or-nothing across every event and time range for that tenant.

TierRefresh cadence
HotEvery 5 minutes, plus login warm-up
WarmEvery 10 minutes, plus login warm-up
ColdNo dedicated cadence — only login warm-up and the full 6-hour sweep touch these
Full sweep (all 86 objects, every tenant)Every 6 hours

Portal (Contact-authenticated) reads go through a single, strictly read-only chokepoint that re-reads the same cached rows with an owner-field check, so a donor or bidder portal only ever sees their own records.

What's cached, and how fast

Every object below is cached in one shared Postgres table, keyed per tenant and record. Salesforce is always the source of truth — Forge never writes to this cache from a user action, only from sync jobs.

Cache keySalesforce API nameTierWhen it refreshes
Eventconference360__Event__cHotlogin-warm, 5min, 6h
Sessionconference360__Session__cHotlogin-warm, 5min, 6h
Ticketconference360__Event_Item__cHotlogin-warm, 5min, 6h
Orderbt_stripe__Sales_Document__cHotlogin-warm, 5min, 6h, + on-demand full refresh
Transactionbt_stripe__Transaction__cHotlogin-warm, 5min, 6h, + on-demand full refresh
Form Submissionconference360__Form_Submission__cHotlogin-warm, 5min, 6h
Sponsorconference360__Sponsor__cHotlogin-warm, 5min, 6h
Speakerconference360__Speaker__cHotlogin-warm, 5min, 6h
Attendeeconference360__Attendee__cHotlogin-warm, 5min, 6h
Formconference360__Form__cWarmlogin-warm, 10min, 6h
Form Elementconference360__Form_Element__cWarmlogin-warm, 10min, 6h
Form Element Conditionconference360__Form_Element_Condition__cWarmlogin-warm, 10min, 6h
Invoice Linebt_stripe__Line_Item__cWarmlogin-warm, 10min, 6h, + on-demand single-invoice fallback
Budget Expenseconference360__Budget_Expense__cWarmlogin-warm, 10min, 6h
Session Speakerconference360__Session_Speaker__cWarmlogin-warm, 10min, 6h
Attendee Groupconference360__Attendee_Group__cWarmlogin-warm, 10min, 6h
Attendee Data Messageconference360__Attendee_Data_Message__cWarmlogin-warm, 10min, 6h
Event Assetconference360__Event_Asset__cWarmlogin-warm, 10min, 6h
Payment Gatewaybt_stripe__Payment_Gateway__cWarmlogin-warm, 10min, 6h
CampaignCampaign (standard)Warmlogin-warm, 10min, 6h
Sponsor Benefitconference360__Sponsor_Benefit__cWarmlogin-warm, 10min, 6h
Discountconference360__Discount__cWarmlogin-warm, 10min, 6h
Donationbt_fundraising__Donation__cWarmlogin-warm, 10min, 6h (display only — donation writes always go live via sf-outbox.ts, never through this cache)
Portal Contact Roleconference360__Portal_Contact_Role__cWarmlogin-warm, 10min, 6h (infra only — no portal read consumes it yet)
Auction Registrationbt_fundraising__Auction_Registration__cWarmlogin-warm, 10min, 6h
Session Attendeeconference360__Session_Attendee__cWarmlogin-warm, 10min, 6h
Tableconference360__Table__cColdlogin-warm, 6h only
Seatconference360__Seat__cColdlogin-warm, 6h only
Codebt_stripe__Code__cColdlogin-warm, 6h only
Custom Contentconference360__Custom_Event_Tab__cColdlogin-warm, 6h only
Event Groupconference360__Event_Group__cColdlogin-warm, 6h only
Logistics Entryconference360__Logistics_Entry__cColdlogin-warm, 6h only
Logistics Pillar Statusconference360__Logistics_Pillar_Status__cColdlogin-warm, 6h only
Rulebt_base__Rule__cColdlogin-warm, 6h only
Rule Conditionbt_base__Rule_Condition__cColdlogin-warm, 6h only
Form Big List Groupconference360__Form_Big_List_Group__cColdlogin-warm, 6h only
Form Big List Optionconference360__Form_Big_List_Option__cColdlogin-warm, 6h only
Feebt_stripe__Fee__cColdlogin-warm, 6h only
Event Settingsconference360__Event_Settings__cColdlogin-warm, 6h only
Data Dictionary Groupbt_stripe__Data_Dictionary_Group__cColdlogin-warm, 6h only
Waitlistconference360__Waitlist__cColdlogin-warm, 6h only
Event FAQconference360__Event_FAQ__cColdlogin-warm, 6h only
Event Contentconference360__Event_Content__cColdlogin-warm, 6h only
Staffconference360__Staff__cColdlogin-warm, 6h only
ContactContact (standard)Coldlogin-warm, 6h only (tenant-wide, not event-scoped)
Session Staffconference360__Session_Staff__cColdlogin-warm, 6h only
Keywordconference360__Keyword__cColdlogin-warm, 6h only — added 2026-09-22
Translationbt_base__Translation__cColdlogin-warm, 6h only — added 2026-09-22
Visibility Rulebt_base__Visibility_Rule__cColdlogin-warm, 6h only — added 2026-09-22
Badge Printing Configurationconference360__Badge_Printing_Configuration__cColdlogin-warm, 6h only — added 2026-09-22
Badge Printing Configuration Detailsconference360__Badge_Printing_Configuration_Details__cColdlogin-warm, 6h only — added 2026-09-22
Event Item Sessionconference360__Event_Item_Session__cColdlogin-warm, 6h only — added 2026-09-22
Event Keywordconference360__Event_Keyword__cColdlogin-warm, 6h only — added 2026-09-22
Event Notificationconference360__Event_Notification__cColdlogin-warm, 6h only — added 2026-09-22
Event Ticketconference360__Event_Ticket__cColdlogin-warm, 6h only — added 2026-09-22
Form Questionconference360__Form_Question__cColdlogin-warm, 6h only — added 2026-09-22
Recurring Eventsconference360__Recurring_Events__cColdlogin-warm, 6h only — added 2026-09-22
Roomconference360__Room__cColdlogin-warm, 6h only — added 2026-09-22
Resourceconference360__Resource__cColdlogin-warm, 6h only — added 2026-09-22
Session Keywordconference360__Session_Keyword__cColdlogin-warm, 6h only — added 2026-09-22
Session Resourceconference360__Session_Resource__cColdlogin-warm, 6h only — added 2026-09-22
Track Attendeeconference360__Track_Attendee__cColdlogin-warm, 6h only — added 2026-09-22
Trackconference360__Track__cColdlogin-warm, 6h only — added 2026-09-22
Webinar Accountconference360__Webinar_Account__cColdlogin-warm, 6h only — added 2026-09-22
Auctionbt_fundraising__Auction__cColdlogin-warm, 6h only — added 2026-09-22
Auction Itembt_fundraising__Auction_Item__cColdlogin-warm, 6h only — added 2026-09-22
Auction Bundlebt_fundraising__Auction_Bundle__cColdlogin-warm, 6h only — added 2026-09-22
Auction Bundle Itembt_fundraising__Auction_Bundle_Item__cColdlogin-warm, 6h only — added 2026-09-22
Auction Item Allocationbt_fundraising__Auction_Item_Allocation__cColdlogin-warm, 6h only — added 2026-09-22
Auction Appealbt_fundraising__Auction_Appeal__cColdlogin-warm, 6h only — added 2026-09-22
Auction Pledgebt_fundraising__Auction_Pledge__cColdlogin-warm, 6h only — added 2026-09-22
Auction Transactionbt_fundraising__Auction_Transaction__cColdlogin-warm, 6h only — added 2026-09-22
Bidbt_fundraising__Bid__cColdlogin-warm, 6h only — added 2026-09-22
Rafflebt_fundraising__Raffle__cColdlogin-warm, 6h only — added 2026-09-22
Raffle Entrybt_fundraising__Raffle_Entry__cColdlogin-warm, 6h only — added 2026-09-22
Donated Itembt_fundraising__Donated_Item__cColdlogin-warm, 6h only — added 2026-09-22
Donation Allocationbt_fundraising__Donation_Allocation__cColdlogin-warm, 6h only — added 2026-09-22
Donation Soft Creditbt_fundraising__Donation_Soft_Credit__cColdlogin-warm, 6h only — added 2026-09-22
Pledgebt_fundraising__Pledge__cColdlogin-warm, 6h only — added 2026-09-22
Gift Aid Declarationbt_fundraising__Gift_Aid_Declaration__cColdlogin-warm, 6h only — added 2026-09-22
P2 PParticipantbt_fundraising__P2P_Participant__cColdlogin-warm, 6h only — added 2026-09-22
P2 PTeambt_fundraising__P2P_Team__cColdlogin-warm, 6h only — added 2026-09-22
Designationbt_fundraising__Designation__cColdlogin-warm, 6h only — added 2026-09-22
Recurring Giftbt_fundraising__Recurring_Gift__cColdlogin-warm, 6h only — added 2026-09-22
Code Eligibilitybt_stripe__Code_Eligibility__cColdlogin-warm, 6h only — added 2026-09-22
Data Dictionary Entrybt_stripe__Data_Dictionary_Entry__cColdlogin-warm, 6h only — added 2026-09-22

(86 cached objects total as of 2026-09-22. Fundraising settings/config objects (Auction Setting, Donation Settings, and a handful of custom-metadata configuration objects) were deliberately left out of the cache — they're per-org configuration, not per-record data, so there's nothing to sync per record.

Two objects need verification

Discount__c and Logistics_Pillar_Status__c are referenced by the cache configuration but do not appear in Blackthorn's checked-in Events package object catalog under those exact names. Logistics_Entry__c is in the catalog, but its fields read like an internal Forge task-tracking object rather than a genuine Events package object. If your org reports records under any of these three never showing up, that's the most likely cause — please contact support so we can verify the object identity against your org directly.

Per-event vs. tenant-wide syncing

A subset of objects — Session, Ticket, Form Submission, Sponsor, Speaker, Budget & Expense, Table, Custom Content, Exhibit Space, Exhibit Assignment, Sponsor Benefit, Attendee Group, Discount, Waitlist, Order, Event FAQ, Event Content, and Staff — can also be synced scoped to a single event, on demand. Everything else only syncs tenant-wide, across every event at once.

Not synced — always queried live

These objects are known to Forge but intentionally excluded from the cache system entirely — any screen reading them always queries Salesforce live, never a cache. This is by design, not a sync gap, though it's the first thing to check if a customer reports one of these “not syncing.”

Salesforce API nameNotes
conference360__Email_Template__c—
conference360__Exhibit_Space__c—
conference360__Exhibit_Assignment__c—
conference360__Expense_Entry__c—
conference360__FAQ_Category__c—
conference360__FAQ_Question__c—
conference360__Track_Session__c—

Computed summary caches

Two dashboards don't store raw Salesforce records at all — they run a live query across several objects and persist just the computed summary, refreshing on-demand when the summary looks stale.

FeatureSalesforce objects queried liveWhen it refreshes
Dashboard summaryEvent, Ticket, Attendee, Line Item, Order, Transaction, Session, Session Attendee, CampaignOn-demand when stale, plus a background sweep
Pipeline / ROI summaryOpportunity, Campaign Influence, Opportunity Contact Role, Campaign MemberOn-demand when viewed

Short-lived caches

A handful of small, fast-expiring caches sit in front of specific screens — event basics, display names, session-list results, related-list rows, and edit-permission checks. These exist purely for responsiveness (seconds to a few minutes), not durability, and are cleared automatically whenever the underlying record is written.

How writes reach Salesforce

Most Forge writes go straight to Salesforce synchronously. A defined set of objects — mainly Payments, Donations, Fundraising, and Auctions — instead go through a durable queue: the write is recorded, then a background process executes the real Salesforce write shortly after.

  • Payments: Invoice (Sales Document), Transaction, Line Item, Payment Schedule.
  • Donations / Fundraising: Donation, Donation Allocation, Donation Soft Credit, Recurring Gift, Pledge, Gift Aid Declaration, P2P Participant, P2P Team, Designation.
  • Auctions: Auction Registration, Auction Transaction, Auction Item, Auction Bundle, Auction Appeal, Auction Pledge, Bid, Raffle Entry.
  • Events: Attendee, Event, Session Attendee, Attendee Group, Form Submission, Form Submission Answer, Seat, Table.

Why a recent write can look stale for a few minutes

For any object that's both queued for write-through AND cached for reads (Order, Transaction, Donation, and Attendee Group are common examples), there's a short window where the write is confirmed but the cached read hasn't picked it up yet — up to a few minutes for hot/warm objects, up to 6 hours for cold-tier ones. This is expected lag, not a bug, unless the screen you wrote from doesn't show your own change immediately.

Full object catalog by package

Cross-referencing every Salesforce object across all four managed packages against cache status. “Not in cache system” does not mean Forge never reads an object — many are queried live outside the tiered cache system, or are pure configuration/metadata objects with no sync concept at all — only that it isn't part of the tiered cache/warm-sync system covered above.

blackthorn-base (bt_base__) — 26 objects

Base package objects (forms infrastructure, visibility rules, translations, scheduling).

Salesforce API nameLabelCache status
Blackthorn_Base_Settings_Protected__cBlackthorn | Base Settings ProtectedNot in cache system
Blackthorn_Base_Settings__cBlackthorn | Base SettingsNot in cache system
Branding_Setting__cBranding SettingNot in cache system
FeatureToggle__mdtBlackthorn Feature ToggleNot in cache system (custom metadata, not a record type the cache system handles)
Form_Big_List_Group__cBT Form Big List Group (Deprecated)Not in cache system — deprecated; do not confuse with conference360__Form_Big_List_Group__c, which IS cached
Form_Big_List_Option__cBT Form Big List Option (Deprecated)Not in cache system — deprecated
Form_Element_Condition__cBT Form Element Condition (Deprecated)Not in cache system — deprecated
Form_Element__cBT Form Element (Deprecated)Not in cache system — deprecated
Form_Question_Map_To_Object__mdtForm Question Map To ObjectNot in cache system
Form_Submission_Answer__cBT Form Submission Answer (Deprecated)Not in cache system — deprecated
Form_Submission__cBT Form Submission (Deprecated)Not in cache system — deprecated
Form__cBT Form (Deprecated)Not in cache system — deprecated
Keyword__cBT KeywordNot in cache system
Protected_Key__mdtProtected KeyNot in cache system
Rule_Condition__cBT Rule ConditionCached (cold)
Rule__cBT RuleCached (cold)
SCH_Schedule_Action__cSchedule ActionNot in cache system
SCH_Schedule_Config__cBlackthorn Schedule ConfigNot in cache system
SCH_Schedule_Delta_Request__cSchedule Delta RequestNot in cache system
SCH_Schedule__cScheduleNot in cache system
Schedule_Execution_Log__cSchedule Execution LogNot in cache system
Schedule_Execution__cSchedule ExecutionNot in cache system
Translation__cTranslationCached (cold) — added 2026-09-22
Visibility_Rule__c*(empty label in source XML)*Cached (cold) — added 2026-09-22

events (conference360__) — 119 objects

Events package objects — the largest package, covering the full event/session/attendee/form surface.

Salesforce API nameLabelCache status
Attendee_Data_Message__cEvent Attendee Data MessageCached (warm)
Attendee_Group__cAttendee GroupCached (warm)
Attendee__cAttendeeCached (hot)
Badge_Printing_Configuration_Details__cBadge Printing Configuration DetailCached (cold) — added 2026-09-22
Badge_Printing_Configuration__cBadge Printing ConfigurationCached (cold) — added 2026-09-22
Bee_Configuration__mdtBee ConfigurationNot in cache system
Blackthorn_Events_Settings_Protected__cBlackthorn | Events Settings ProtectedNot in cache system
Blackthorn_Events_Settings__cBlackthorn | Events SettingsNot in cache system
Blackthorn_Events_User_Settings__cBlackthorn | Events User SettingsNot in cache system
Blackthorn_Events_Whitelisted_Domains__cBlackthorn Events Whitelisted DomainsNot in cache system
Budget_Alert_Threshold__cBudget Alert ThresholdNot in cache system
Budget_Expense__cBudget & ExpenseCached (warm)
Cloudinary_Credential__mdtCloudinary CredentialNot in cache system
Comms_Priority_Rule__c*(name-field label, not object label — verify)*Not in cache system
Comms_Queue_Entry__c*(name-field label, not object label — verify)*Not in cache system
Comms_Source__c*(name-field label, not object label — verify)*Not in cache system
Communication__c*(name-field label, not object label — verify)*Not in cache system
Custom_Event_Tab__cCustom ContentCached (cold), as CustomContent
DataSyncRetry__cData Sync RetryNot in cache system
Email_Blast__cEmail BlastNot in cache system
Email_Settings__cBlackthorn | Email SettingsNot in cache system
Email_Template__cEmail TemplateDeclared, not synced
Event_Ad__cEvent AdNot in cache system
Event_Attendee_Data__cEvent Attendee DataNot in cache system
Event_Builder_Configuration__mdtEvent Builder ConfigurationNot in cache system
Event_Commitment__cEvent CommitmentNot in cache system
Event_Content__cEvent ContentCached (cold)
Event_FAQ__cEvent FAQCached (cold)
Event_Group_Association__cEvent Group AssociationNot in cache system
Event_Group__cEvent GroupCached (cold)
Event_Item_Purchase__cEvent Item Purchase (Deprecated)Not in cache system
Event_Item_Session__cEvent Item SessionCached (cold) — added 2026-09-22
Event_Item__cEvent ItemCached (hot), as Ticket
Event_Keyword__cEvent KeywordCached (cold) — added 2026-09-22
Event_Notification__cEvent NotificationCached (cold) — added 2026-09-22
Event_PM_Notification__cEvent Project Manager NotificationNot in cache system
Event_ROI_Target__cEvent ROI TargetNot in cache system
Event_Registration_Submission__cEvent Registration SubmissionNot in cache system
Event_Settings__cEvent SettingsCached (cold)
Event_Staff_Profile__cEvent Staff ProfileNot in cache system
Event_Task_Dependency__cEvent Task DependencyNot in cache system
Event_Task_Template__cEvent Task TemplateNot in cache system
Event_Ticket__c*(empty label in source XML)*Cached (cold) — added 2026-09-22
Event_User_Identity__cEvent User IdentityNot in cache system
Event__cEventCached (hot)
Exhibit_Assignment__cExhibit AssignmentDeclared, not synced
Exhibit_Space__cExhibit SpaceDeclared, not synced
Expense_Entry__cExpense EntryDeclared, not synced
FAQ_Category__cFAQ CategoryDeclared, not synced
FAQ_Question__cFAQ QuestionDeclared, not synced
Finance_Approval_Event__cFinance Approval EventNot in cache system
Finance_Approval_Request__cFinance Approval RequestNot in cache system
Finance_Approval_Rule__cFinance Approval RuleNot in cache system
Flight__cFlightNot in cache system
Floor__c*(empty label in source XML)*Not in cache system
Form_Big_List_Group__cForm Big List GroupCached (cold)
Form_Big_List_Option__cForm Big List OptionCached (cold)
Form_Element_Condition__cForm Element ConditionCached (warm)
Form_Element__cForm ElementCached (warm)
Form_Question__c*(empty label in source XML)*Cached (cold) — added 2026-09-22
Form_Submission_Answer__cForm Submission AnswerNot in cache system
Form_Submission__cBlackthorn Events Form SubmissionCached (hot)
Form__cFormCached (warm)
Hotel_Room_Block__cHotel Room BlockNot in cache system
Hotel_Room__cHotel BookingNot in cache system
Keyword__cKeywordCached (cold) — added 2026-09-22
Logistics_Entry__cNot confirmed against this exact API name (see the callout above)Cached (cold) (unverified — see callout above)
Mass_Email__cMass EmailNot in cache system
Mobile_Attendee_App_Usage__cMobile App UsageNot in cache system
Mobile_Check_In_Submission__cMobile Check In SubmissionNot in cache system
PO_Reconciliation__cPO ReconciliationNot in cache system
PersonAccount__c*(empty label in source XML)*Not in cache system
Portal_Contact_Role__cPortal Contact RoleCached (warm)
Protected_Key__mdtProtected KeyNot in cache system
Purchase_Order_Line__cPurchase Order LineNot in cache system
Purchase_Order__cPurchase OrderNot in cache system
Recurring_Events__cRecurring EventCached (cold) — added 2026-09-22
Resource__cResourceCached (cold) — added 2026-09-22
Room__cRoomCached (cold) — added 2026-09-22
Seat__cSeatCached (cold)
Session_Attendee__cSession AttendeeCached (warm)
Session_Keyword__cSession KeywordCached (cold) — added 2026-09-22
Session_Resource__cSession ResourceCached (cold) — added 2026-09-22
Session_Speaker__cSession SpeakerCached (warm)
Session_Staff__cSession StaffCached (cold)
Session__cSessionCached (hot)
Speaker__cSpeakerCached (hot)
Sponsor_Benefit__cSponsor BenefitCached (warm)
Sponsor__cSponsorCached (hot)
Sponsorship__c*(empty label in source XML)*Not in cache system
Staff__cStaffCached (cold)
Table__cTableCached (cold)
Track_Attendee__cTrack AttendeeCached (cold) — added 2026-09-22
Track_Session__cTrack SessionDeclared, not synced
Track__cTrackCached (cold) — added 2026-09-22
Waitlist__cWaitlistCached (cold)
Webinar_Account__cWebinar AccountCached (cold) — added 2026-09-22
Event_Asset__c*(no object-meta.xml)*Cached (warm), as EventAsset
Discount__cNot confirmed against this exact API name (see the callout above)Cached (warm) (unverified — see callout above)
Logistics_Pillar_Status__cNot confirmed against this exact API name (see the callout above)Cached (cold) (unverified — see callout above)

fundraising (bt_fundraising__) — 29 objects

Fundraising package objects — donations, auctions, pledges, peer-to-peer.

Salesforce API nameLabelCache status
Auction_Appeal__cAuction AppealCached (cold) — added 2026-09-22; also write-only via outbox, §6
Auction_Bundle_Item__cAuction Bundle ItemCached (cold) — added 2026-09-22
Auction_Bundle__cAuction BundleCached (cold) — added 2026-09-22; also write-only via outbox
Auction_Item_Allocation__cAuction Item AllocationCached (cold) — added 2026-09-22
Auction_Item__cAuction ItemCached (cold) — added 2026-09-22; also write-only via outbox
Auction_Pledge__cAuction PledgeCached (cold) — added 2026-09-22; also write-only via outbox
Auction_Registration__cAuction RegistrationCached (warm) + write-only via outbox — the only fundraising object in both §2 and §6
Auction_Setting__cAuction SettingNot in cache system
Auction_Transaction__cAuction TransactionCached (cold) — added 2026-09-22; also write-only via outbox
Auction__cAuctionCached (cold) — added 2026-09-22
Bid__cBidCached (cold) — added 2026-09-22; also write-only via outbox
Configuration__mdtFundraising ConfigurationNot in cache system
Designation__cDesignationCached (cold) — added 2026-09-22; also write-only via outbox
Donated_Item__cDonated ItemCached (cold) — added 2026-09-22
Donation_Allocation__cDonation AllocationCached (cold) — added 2026-09-22; also write-only via outbox
Donation_Settings__cDonation SettingsNot in cache system
Donation_Soft_Credit__cSoft CreditCached (cold) — added 2026-09-22; also write-only via outbox
Donation__cDonationCached (warm), display-only; writes always via outbox, never through this cache
Gift_Aid_Declaration__cGift Aid DeclarationCached (cold) — added 2026-09-22; also write-only via outbox
Giving_Model_Mapping__mdtGiving Model MappingNot in cache system
Jurisdiction_Config__mdtJurisdiction ConfigurationNot in cache system
P2P_Participant__cP2P ParticipantCached (cold) — added 2026-09-22; also write-only via outbox
P2P_Team__cP2P TeamCached (cold) — added 2026-09-22; also write-only via outbox
Pledge__cPledgeCached (cold) — added 2026-09-22; also write-only via outbox
Price_Rule_Def__cPrice Rule DefNot in cache system
Raffle_Entry__cRaffle EntryCached (cold) — added 2026-09-22; also write-only via outbox
Raffle__cRaffleCached (cold) — added 2026-09-22
Recurring_Gift__cRecurring GiftCached (cold) — added 2026-09-22; also write-only via outbox

payments (bt_stripe__) — 64 objects

Payments package objects — invoices, transactions, gateways, subscriptions infrastructure.

Salesforce API nameLabelCache status
Allocation__cAllocationNot in cache system
Application_Fee_Credit__cDeprecated - Application Fee CreditNot in cache system
Blackthorn_Log__cBlackthorn LogNot in cache system
Blackthorn_Payments_Mobile_Settings__cBlackthorn Payments | Mobile SettingsNot in cache system
Blackthorn_Payments_Stripe_Connect__cBlackthorn Pay - FeaturesNot in cache system
Checkout_Submission__cCheckout SubmissionNot in cache system
Code_Eligibility__cCode EligibilityCached (cold) — added 2026-09-22
Code__cCodeCached (cold)
Company__cCompany InfoNot in cache system
Connected_Account_Owner__cConnected Account OwnerNot in cache system
Connected_Account__cConnected AccountNot in cache system
Coupon2__cStripe CouponNot in cache system
Data_Dictionary_Entry__cData Dictionary EntryCached (cold) — added 2026-09-22
Data_Dictionary_Group__cData Dictionary GroupCached (cold)
Dispute_Evidence__cDispute EvidenceNot in cache system
Dispute__cDisputeNot in cache system
DocumentLinkTemplate__cDocumentLink TemplateNot in cache system
Fee_Tiers__cBlackthorn Pay - Transaction FeesNot in cache system
Fee__cFeeCached (cold)
Gateway_Order_Item__cGateway Order ItemNot in cache system
Gateway_Order__cStripe Gateway OrderNot in cache system
Gateway_SKU__cGateway SKUNot in cache system
Line_Item__cLine ItemCached (warm), as InvoiceLine — write-only via outbox for the corresponding SF write
Location__cLocationNot in cache system
Payment_Gateway__cPayment GatewayCached (warm)
Payment_Intent__cPayment IntentNot in cache system
Payment_Method_Parents__cBlackthorn Pay - Payment Method ParentsNot in cache system
Payment_Method__cPayment MethodNot in cache system
Payment_Schedule__cPayment ScheduleNot in cache system (write-only via outbox)
Payments_User_Override__cPayments User OverrideNot in cache system
Plan2__cStripe PriceNot in cache system
Protected_Key__mdtProtected KeyNot in cache system
Reattempt_Settings__cBlackthorn Pay - Reattempt SettingsNot in cache system
Relationship_Settings__cRelationship SettingsNot in cache system
Sales_Document__cInvoiceCached (hot), as Order — write-only via outbox for the corresponding SF write
Stripe_API_Keys__cBlackthorn Pay - Stripe Connect API KeysNot in cache system
Stripe_Application_Fee__cDeprecated - Application FeeNot in cache system
Stripe_Billing_Component_Settings__cBlackthorn Pay-Stripe Billing ComponentNot in cache system
Stripe_Connect_Country_Specs__mdtStripe Connect Country SpecsNot in cache system
Stripe_Currency_Setting__mdtStripe Currency SettingNot in cache system
Stripe_Customer__cPayment Gateway CustomerNot in cache system
Stripe_Metadata_Mapping__mdtStripe Metadata MappingNot in cache system
Stripe_Platform_Credential__mdtPlatform CredentialNot in cache system
Stripe_Settings__cBlackthorn Pay - Trigger SettingsNot in cache system
Subscription2__cSubscriptionNot in cache system — NB: recurring-engine rule forbids using this; see CLAUDE.md
Subscription_Item__cSubscription ItemNot in cache system
Subscription_Schedule__cSubscription ScheduleNot in cache system
Tier__cTierNot in cache system
Transaction_Field__cBlackthorn Pay - Transaction ParentsNot in cache system
Transaction_Validation_Rules__cBlackthorn Pay - Transaction ValidationsNot in cache system
Transaction__cTransactionCached (hot) — write-only via outbox for the corresponding SF write
Usage__cUsageNot in cache system
Virtual_Terminal_Mapping__mdtVirtual Terminal MappingNot in cache system
Virtual_Terminal_Settings__cBlackthorn Payments | Virtual TerminalNot in cache system
Webhook_Event__cWebhook EventNot in cache system
Webhook_Secret__mdtWebhook SecretNot in cache system

forge-unpackaged (org-native custom objects) — 55 objects

These are Forge-owned custom objects with no managed-package namespace (Abstracts, Appointments, Event project-management, Purchase Orders, Vendor tracking, and a few others). None of them participate in the tiered cache/warm-sync system described above — if one of these is expected to sync on login, that would be new work, not a gap in existing wiring.

Likely causes when something looks like it isn't syncing

  1. Cold-tier objects have no dedicated refresh cadence — only the 6-hour full sweep and login warm-up touch them, so a record can be stale for up to 6 hours (or effectively longer for a low-traffic tenant that hasn't had a recent session).
  2. The handful of “declared, not synced” objects above never populate the cache regardless of time — any screen reading one of these should fall back to a live query and show correct (if slower) data. If it shows nothing instead, that's worth reporting.
  3. Write-through lag: a Forge write to a queued object completes asynchronously, and the read side only picks it up on the next tier sync — a few minutes on hot/warm objects, up to 6 hours on cold ones.
  4. An unverified cache-key identity (see the Discount/Logistics callout above) can make a sync silently fail or return zero rows every cycle for that specific object.
  5. A tenant's session may simply predate an object being added to the cache system — a tenant that hasn't had a fresh full sync since an object was added could still show an empty cache for that object specifically.

If you've checked the above and something still looks wrong, contact support with the specific object and record in question so we can check your org's sync state directly.