If you're wanting to integrate events, it's likely you will be working with contacts and individuals so make sure to check out our article on Contacts Integration Best Practices to save time, avoid problems, and have cleaner data.
Definition of an Event in Virtuous
Events in Virtuous are functions where you're tracking attendees. While these are usually fundraising focused events, they can also be non-fundraising focused. Due to the complex nature of non-fundraising events such as seminars and conferences with respect to collecting data, we recommend using custom collections for this information.
The event itself is not for tracking volunteers. If you have Volunteers that help at the event, those would be tracked through our volunteer module.
An Event can be created and attendees can be attached to show who was invited and who attended. You can see this on the individual record, query on this data, trigger emails, and build automation workflows for post-event follow-ups.
Sending Events from Virtuous to another System
If Virtuous will be the initial source of Event data and you want to transfer this data to another system after entry into Virtuous, utilize webhooks which will trigger when an event is created, updated, or deleted. Then use our API endpoint for attendee information.
Creating Fundraising Events In Virtuous
For a more automated approach and our best practice approach, build a one way sync creating Events in Virtuous that were first created in another system. From there, get the Event ID from the response and reference this moving forward. Matching on an ID will guarantee you are linking to the correct event as opposed to matching on Event Name which risks potential duplicate event names.
These fields are required when creating an Event:
- Event Name
- Start Date Time
- End Date Time
We strongly recommend adding Communication ID when creating an event. Being a fundraising Event, you will want to know what gifts came in associated to that event. We track that through our Campaign Structure. See our Campaign Integration Best Practices. If the integration is creating the Communications, make sure the Communication is created before creating the event.
Free Fundraising Event Registrations
For fundraising events without a transaction, once you have the event created you can use the Event ID and send over the attendee/registration information to Virtuous through our Import/Transaction Tool as a Contact Import. This will utilize Virtuous’ built in matching logic to connect to the correct record and flag any updated information. Reference the Contacts Integration Best Practices article for basic contact information and then add the following Event Information:
- Event Id
- Invited (if you want this to be false, leave it blank)
- RSVP (if you want this to be false, leave it blank)
- RSVP Response (if you want this to be false, leave it blank)
- Attended (if you want this to be false, leave it blank)
Paid Fundraising Event Registrations
For fundraising events, where there is a transaction involved our best practice would be to both record the attendance of the registrant, and record their registration as a gift with any Fair Market Value deducted.
Let’s say someone purchases a ticket for a Gala and paid $100. However, not all of what they paid is tax deductible. Let’s say there is a $45 Fair Market Value for the food at the event. This will need to be recorded in Virtuous on the gift so that the receipt shows the tax deductible amount of $55. The best way to record this in Virtuous is through premiums, which are connected to gifts and indicate fair market value.
This means the integration should be created in the following order:
- Use this API endpoint to create the Event Registration as a premium
- Creating the Event Registration as a premium first ensures that when the gift comes in, the premium already exists to avoid any errors.
- Send the gift over with the Gifts Integration Best Practices and add the following:
- Premium Code
- Premium Quantity
This will record the premium on the gift to deduct the fair market value.
Create the registration as a gift in our transaction tool where you can pass the related Event information over. See the article Gifts Integration Best Practices and include both the premium code, quantity and related Event information such as:
- Event Id
- Invited (if you want this to be false, leave it blank)
- RSVP (if you want this to be false, leave it blank)
- RSVP Response (if you want this to be false, leave it blank)
- Attended (if you want this to be false, leave it blank)
Updating to Add Attendance After Registration
It is possible to design the integration to only send event and attendance data after the event is complete. However, you will likely want to trigger syncing the data after a registration is completed, to then use Virtuous to trigger additional communications and automations prior to the event, then update later to note whether or not they attended. The user can update invitees as attended manually but you may consider adding logic to the integration to do this for them instead.
A key area to remember here is that the Reference ID referenced in Contacts Integration Best Practices lives at the contact level. Contacts can have multiple individuals underneath, which means the reference ID cannot be used alone to identify the attendee to update.
Once attendance has been recorded in the originating system, eventAttendeeId can be used to update the event in Virtuous.
Auctions
The events system you are integrating with Virtuous may have auction items. It’s critical to track this data properly in Virtuous as this will impact tax receipting.
Let’s say someone purchases a vacation package at your auction event. They paid $10,000. However, not all of what they paid is tax deductible. Let’s say there is a $4,000 fair market value. This will need to be recorded in Virtuous on the gift so that the receipt shows the tax deductible amount of $6,000. The best way to record this in Virtuous is through premiums which are an entity you can note the fair market value that can be connected on a gift.
This means the integration will want to create the following in order:
- Use this endpoint to create the Auction item as a premium
- It is best to create this as auction items are added so that when the gift comes in, the premium already exists to avoid any errors.
- Send the gift over with the Gifts Integration Best Practices and include the following:
- Premium Code
- Premium Quantity
Peer-to Peer Fundraising
When tracking peer-to-peer fundraising in Virtuous we have to consider many things. Primarily, you need to consider the campaign structure for the peer-to-peer fundraiser. One way you may build this would be to have the event itself be the Campaign with the fundraising teams as the "communications" and the individual fundraisers as the segments. These segments, within a campaign, can have a contact assigned to it allowing you to track fundraising by contacts in your database.
The advantage to this method is that it allows you to see a contacts fundraising ability separate from their capacity to give. By adding a contact record to the segment code, when gifts come in attached to the segment code they will automatically be visible on the Contact record under Peer-to-Peer/Influenced Giving.
How to Integrate P2P Events
Before you can attribute a gift to a contact, the contact must first exist. So, your first step will be to make sure the fundraisers are in the CRM as contacts through our contact import (reference the Contacts Integration Best Practices article for basic contact information). The key here is that you should pass the Reference ID (the ID of the record in the peer to peer system) through to the contact. Going through the transaction tool will utilize Virtuous matching logic to ensure no duplicate records are created. This will rely on a user to review and import. Contact create and update webhooks can be used to store a mapping of the Contact Reference ID and the Virtuous Contact ID to use later.
Now that the fundraisers are created you need to create the campaign structure so that it’s ready for when the gifts come in. Our end Goal mapping will be
- Campaign = P2P Event Name + Year/Location/Other identifer (to be unique)
- Communication = Team Name (for example)
- Communication Type = Peer-to-Peer (Makes it easier for reporting)
- Segment Name= Fundraiser Name (for example)
- Segment Code = Fundraiser ID+Team ID+Event ID (segment codes must be unique)
The order of operations for this part of the integration will be to first Query for the Campaign Name, communication, and segment to see if the campaign, team, or fundraiser segment already exist in Virtuous. If the event and team already exist then create the segment code, using the Fundraiser’s Virtuous Contact ID as the Segment Organizer ID to attach the segment code to the fundraiser’s record to reflect donations they’ve raised.
Once you have all this set up,you are ready to receive transactions following the Gifts Integration Best Practices article, making sure the Segment Code is attached to any incoming gifts so the appropriate fundraiser gets credit for their gift.