These objects require WeGive4SF to be installed. See Installing the WeGive Salesforce Managed Package.
Sync direction and triggers
Every object on this page is export only (WeGive to Salesforce). WeGive never polls Salesforce for events, tickets, or registrations, so edits made in Salesforce stay in Salesforce and are overwritten the next time WeGive pushes that record. A record is pushed when it is created or updated in WeGive. Updates to a registration also re-push its registration tickets (see Registration Tickets for how removed line items are handled).Create versus update
Each WeGive record stores the Salesforce ID of its counterpart. If the ID is present, WeGive updates that Salesforce record. If it is absent, WeGive creates a new record and stores the returned ID. WeGive uses a lock per record during creation so a burst of simultaneous updates cannot create duplicates.Parent records are pushed first
Before pushing a child record, WeGive pushes any parent that does not yet have a Salesforce ID:- A ticket pushes its event first.
- A registration pushes its event, each ticket type it references, and the registrant (Contact for an individual, Account for a company) first.
- A registration ticket pushes its ticket type first, and requires that its parent registration already exists in Salesforce.
Deletions
Events, tickets, and registrations that are deleted in WeGive are not deleted in Salesforce. WeGive stampswegive__Deleted_At__c and wegive__Deleted_DateTime__c on the Salesforce record instead, so the history is preserved.
Registration tickets are the exception. After each registration push, WeGive queries the registration’s line items in Salesforce and deletes any that no longer exist in WeGive. This keeps quantities and line amounts in step when a registrant changes their ticket selection.
Sync settings
Each object has its own push toggle under Settings > Integrations > Salesforce NPSP > Sync Configuration > WeGive4Salesforce Pushes. All four are typically enabled together.Shared fields
Every object on this page receives these fields on each push.
Events, tickets, and registrations (but not registration tickets) also receive
wegive__Created_At__c, wegive__Updated_At__c, and wegive__Deleted_At__c as dates, plus wegive__Created_DateTime__c, wegive__Updated_DateTime__c, and wegive__Deleted_DateTime__c as full timestamps.
Salesforce limits Name to 80 characters and the WeGive text fields listed below to 255. WeGive truncates on push. The full value remains in WeGive.
Events
Salesforce object:wegive__Event__c
WeGive custom fields on an event that have a Salesforce API name configured are also included in the push.
Event Tickets
Salesforce object:wegive__Event_Ticket__c
Event Registrations
Salesforce object:wegive__Event_Registration__c
WeGive custom fields on a registration that have a Salesforce API name configured are also included in the push.
wegive__Status__c is passed through as-is from the WeGive registration’s own status values: approved, rejected, attended, pending, waitlisted, unregistered, canceled (confirmed against CampaignEventRegistration’s status validation rule and its attending() scope). No translation or mapping table exists — whatever value the registration carries in WeGive is exactly what lands in Salesforce.Registrations with more than one ticket type
When a registrant selects two or more ticket types in a single registration, WeGive leaveswegive__Event_Ticket__c and wegive__Event_Ticket_WeGive_Id__c blank on the registration record. The per-ticket detail lives on the registration ticket line items instead. Reports that need ticket-level detail should be built on wegive__Event_Registration_Ticket__c, not on the registration.
Company registrants
When an event allows company registrations and a company registers, WeGive pushes the company’s Account if it does not already exist in Salesforce. However, the registration record only has a Contact lookup (wegive__Contact__c), and a company has no Contact ID, so company registrations arrive in Salesforce with an empty Contact lookup. The registration is still identifiable through wegive__WeGive_Donor_Id__c, which holds the company’s WeGive ID.
Registration Tickets
Salesforce object:wegive__Event_Registration_Ticket__c
One record per ticket type on a registration. A registration with three General Admission tickets and one VIP ticket produces two registration ticket records.
The fields above are the defaults. Registration tickets are the only event object whose custom mapping rules are applied on push. See Data Mapping Overview.
Troubleshooting
An event, ticket, or registration is not appearing in Salesforce. Check that the corresponding push setting is enabled, and that WeGive4SF is installed with the WeGive Admin permission set assigned to the integration user. The record must have been created or updated in WeGive since the setting was turned on; enabling a setting does not backfill existing records. Registration tickets fail with a “no Salesforce event ticket” error. The ticket push setting is off, or the ticket type failed to push. Enable ticket pushes and update the registration in WeGive to retry. A registration has no ticket type. Either the registrant selected more than one ticket type (expected; see above) or the ticket push setting was off when the registration was pushed. A registration has no Contact. The registrant is a company. See Company registrants. A change made in Salesforce disappeared. Expected. These objects are push-only, and WeGive overwrites the Salesforce record on its next push. Ticket prices look 100 times too large or too small. WeGive stores prices in cents and converts to dollars on push. If a mapping rule on registration tickets overrideswegive__Unit_Price__c or wegive__Line_Amount__c, check that the rule does not pass the raw cent value.