TABLE OF CONTENTS
- Package Details
- Production Deployment Steps
- Prior to installation:
- Package Installation
- Configuration
- Authentication & Logs Tab
- Setting up Remote Site Setting
- Save and Discard
- Data Import Tab
- Help Text
- Times used in Configuration
- Holding Tank Section
- Importing Tabs
- Object Mapping
- Field Mapping
- Object and Field Level Security
- Temporary objects:
- Additional object:
- Apex Class Access
- Resources
Package Details
The following details are in reference to the Tiltify Salesforce Connector Package:
- Package Info
- Latest Package Version: Version 1.5
- Version ID: 04t5f000000SKmH
- PRODUCTION Package Installation URL:
- https://login.salesforce.com/packaging/installPackage.apexp?p0=04t5f000000SKmH
- SANDBOX Package Installation URL:
- https://test.salesforce.com/packaging/installPackage.apexp?p0=04t5f000000SKmH
Production Deployment Steps
Prior to installation:
The end user will need to log onto the Cause Dashboard and navigate to Integrations, Salesforce to generate a Shared Secret. The needed API URL value is https://salesforce.tiltify.com/gql
Package Installation
You will need to download the package from the Salesforce Appexchange or from a Tiltify provided link.
- Using the provided URL you will start the package install.
- You may get a prompt to Log Into Salesforce Org to install the package if you are not already signed into your instance.
- Best practice is to set up in your Sandbox for testing and training prior to your Production instance.
- Your next screen will allow you to install the package into your Salesforce instance. Implement security as required by your instance and company.
Installation window that appears looks similar to the above.
- Select the installation security radio button needed and Select the Install button. You will now see the installation and depending on the availability of the network you may get a notice that an email will be sent when installation is complete or you will receive a message similar to the one below:
- Select the Done button to return to your Salesforce instance.
Configuration
Navigating to the Configuration App for setup of the Managed Package.
- Select the App Launcher in the left corner of the menu bar.
- In the Search bar enter “Tiltify”
- Select the Tiltify App.
Authentication & Logs Tab
- Using the information provided by Tiltify complete:
- Api Url
- Shared Secret
- Set following information in the provide fields:
- the Logging Level to the Debug.
- Set the Max Number of Logs to 200.
1 After successfully setting up and importing records it is possible to set the Logging Level to Error as you gain familiarity with the managed package.
Setting up Remote Site Setting
The remote site setting is a configuration that is set to allow your Salesforce Org to communicate with outside resources.
Select the Remote Site Setting button on the Authentication & Logs tab on the Configuration Page.
- Select the New Remote Site button to enter the host URL that has been provided by Tiltify. This allows Salesforce to communicate with this particular URL.
- Enter the Remote Site Name.
- The host URL.
- Ensure it is marked active.
- Select the Save button.
Save and Discard
As you navigate through the Configuration Page you will see a Save Button and a Discard Button at the top of the page.
- The Save button will show a value of unsaved Changes when a change has been made.
- The Discard button will allow you to revert to previous values when selected.
Data Import Tab
The Data Import Tab allows you to set general configurations and view those records that are within your Salesforce Org but being housed in temporary Objects until they are moved to the mapped Objects you will designate in the Mapping Tabs.
- The Import Now button allows you to import all records immediately.
- The Enable Import Toggle will allow you to create a scheduled job to import records based on the value just below it in the Scheduled Time field.
- The Schedule Time field will allow you to schedule your imports at your convenience each day.
- The Last Import / Import Since will be the date and time that will be used for the next scheduled import (if you enable imports) and can be adjusted as your processes require.
- The Next Scheduled Import shows when the next run of the Import Schedule is to execute.
- The Reset to Default Mappings allows a user to set up mappings for all Mapping Tabs to the defaults that were present at installation. This will remove / delete all current mappings.
- The Clear All Now button will remove / delete all records from any temporary storage objects.
Help Text
In each page section you will see a question mark that can be pressed to provide specific text for that section of each page.
Times used in Configuration
All times in the Configuration are using the time zone of the Salesforce Org and not necessarily of the current user.
Holding Tank Section
This section of the page shows the Salesforce Object that data is temporarily being stored in and any records that created an error and were not imported.
The following is a list of the Object Labels in Salesforce that the corresponding Tiltify Object records are stored in before being inserted into their mapped objects and fields:
Page Break
Salesforce Object Label | Tiltify Object |
Tiltify Campaign | Campaign |
Tiltify Donations | Donations |
Tiltify Fundraising Events | Fundraising Events |
Tiltify Team | Team |
Tiltify User | User |
If you refresh the Configuration Page during import you will see the Records of the different objects update showing as they progress to import.
Importing Tabs
There are five importing tabs that correspond to the data that will be imported into your Salesforce instance. Each tab requires that there is a destination for each Tiltify field in the destination object.
When you installed your package, some destination objects and fields were updated for the most probable destination object and fields for most instances. This is completely customizable and can be set as needed in the destination Salesforce instance.
The destination tabs are:
- Users Mapping
- Event Mapping
- Campaign Mapping
- Team Mapping
- Donation Mappings
Object Mapping
On the left side of the page is the information concerning the Object to be mapped to:
- The Salesforce Object dropdown will show all objects within your Salesforce instance. Select a value from the list.
- External Id will be defaulted to the packaged field TiltifyId__c but can be updated as needed. This key will be used to ensure that duplicates are not introduced and that updates to a record are based on this unique value.
- Default Record Type is the record type to use for this type of Tiltify record import.
- Batch Size is generally set at 200 but can be increased, within the limits of Salesforce or decreased due to other instance requirements.
- Create Account Toggle will be available only on the User Tab to allow for the creation of Account Records to associate these records with if you wish to.
The Object Mapping of each of the five mapping tabs will be the same, with the exception of the Create Account Toggle.
Field Mapping
On the right side of each of the five mapping tabs will be a list of the fields that the Tiltify integration will bring into Salesforce that will need a destination field to write to on the Object that is mapped.
These fields will differ based on the information that is being imported into your Salesforce org. Using existing fields may best follow your firm’s business process, consideration should be given to creation of new fields where necessary.
To map these fields select the dropdown list beside the Tiltify field and select the Salesforce Api Name you wish to map values to for import.
Lookup Fields
If you set the Field Mapping to have a Lookup field as the Salesforce field, the app will use the value of the field you are getting from Tiltify as the key to find the external id of the object you are looking up to. With that external id, it will create a relationship with the object that you need to link to. Below are some suggestions for default mappings that you can use to relate your objects.
Here are the fields that can be mapped to standard Salesforce fields:
Tiltify Field | Salesforce Field |
Campaign.fundraising_event_id | Campaign.ParentId |
Donations.user_id | Opportunity.ContactId |
Donations.campaign_id | Opportunity.CampaignId |
Fundraising_event.parent_fundraising_event_id | Campaign.ParentId |
For some objects, you will have to create custom lookup fields for your two related objects (if these objects don’t already have lookup fields to the objects you need in your org):
Tiltify Field | Salesforce Field |
Campaign.user_id | Campaign.Contact__c (Custom Lookup Field to Contact Object) |
Campaign.team_id | Campaign.Team__c (Custom Lookup field to Campaign Object) |
Donations.fundraising_event_id | Opportunity.FundraisingEventId__c (Custom Lookup Field to Campaign Object) |
Object and Field Level Security
The end user that is setting up the Scheduled Import Job will need the object permissions on the temporary objects, destination objects and destination fields.
Temporary objects:
- Tiltify__TiltifyCampaign__c
- Tiltify__TiltifyDonations__c
- Tiltify__TiltifyFundraisingEvents__c
- Tiltify__TiltifyTeam__c
- Tiltify__TiltifyUser__c
Additional object:
- Tiltify__TiltifyLog__c
Apex Class Access
When setting up access to the Apex Classes to setup and run the application the user that is performing the setup will need access to the following Apex classes:
- Tiltify__MockHttpResponseGenerator
- Tiltify__TiltifyAppConfigMappingCntrl
- Tiltify__TiltifyCalloutQueueable
- Tiltify__TiltifyConfigController
- Tiltify__TiltifyConfigControllerTest
- Tiltify__TiltifyCore
- Tiltify__TiltifyCoreTest
- Tiltify__TiltifyCoreValues
- Tiltify__TiltifyDataSyncController
- Tiltify__TiltifyFLSCheck
- Tiltify__TiltifyFLSCheckTest
- Tiltify__TiltifyIntegration
- Tiltify__TiltifyLogEventTest
- Tiltify__TiltifyLogging
- Tiltify__TiltifyLoggingTest
- Tiltify__TiltifyMigrationBatch
- Tiltify__TiltifyParsingEngine
- Tiltify__TiltifyStructure
Tiltify Data Structure:
Overview of Tiltify Objects that can be imported into Salesforce.com. For each object we have included the name of the fields that are available to map and the Holding Tank object’s data type for each field attribute.
Users – Tiltify Users are Fundraisers and Donors. To donate on the Tiltify platform a donor is only required to provide an email address.
Field Name | Data Type | Description |
ID | Text(255) (External ID) | The Tiltify ID of the User |
Text(255) | The email address of the User | |
First Name | Text(255) | The first name of the User |
Last Name | Text(255) | The last name of the User |
Bio | Text Area(255) | The bio that the User entered |
Social | Text Area(255) | The social channels of the User |
Username | Text(255) | The username of the User |
Slug | Text(255) | The slug can be used to get to the Tiltify webpage for the User |
Deleted At | Date/Time | The date the User data was deleted |
Create At | Date/Time | The date the User data was created |
Updated At | Date/Time | The date the User data was updated |
Events – Events are known as Fundraising Event Activations on Tiltify. Each Fundraising Event Activation has a Parent Fundraising Event. The Parent FE groups Fundraising Event Activations. The most common use of this is when a Cause has an annual event and wants to keep the same URL year over year. By using the URL of the Parent FE, the URL will always route the user to the active Fundraising Event Activation.
Field Name | Data Type | Description |
ID | Text(255) (External ID) | The Tiltify ID of a Causes Fundraising Event |
Created At | Date/Time | The date/time the Fundraising Event was Updated |
Updated At | Date/Time | The date/time the Fundraising Event was Created |
Name | Text(255) | The Name of the Fundraising Event |
Starts At | Date/Time | The date the Fundraising Event Starts |
Ends At | Date/Time | The date the Fundraising Event Ends |
Fundraiser Goal Amount | Currency(16, 2) | The amount the Cause would like to raise with the Fundraising Event |
Status | Text(255) | The current status of the Fundraising Event |
Slug | Text(255) | The slug can be used to get to the Tiltify webpage for the Fundraising Event |
Short Description | Text(255) | A short description that the Cause entered for the Fundraising Event |
Contact email | The contact email address provided by the Cause for the Fundraising Event | |
Parent Fundraising Event ID | Text(255) | The ID for the Parent Fundraising Event |
Parent Fundraising Event Name | Text(255) | The Name for the Parent Fundraising Event |
Parent Fundraising Event Slug | Text(255) | The slug can be used to get to the Tiltify webpage for the Current Fundraising Event |
Campaigns – Campaigns are created by Fundraisers. A Campaign can support a Cause and/or a Cause Fundraising Event
Field Name | Data Type | Description |
ID | Text(255) (External ID) | The Tiltify ID of the Campaign |
Name | Text(80) | The Name of the Campaign |
Description | Long Text Area(32000) | The Description of the Campaign |
Starts At | Date/Time | The date the Campaign Starts |
Ends At | Date/Time | The date the Campaign Ends |
Cause ID | Text(255) | The Cause ID that the will received the donations raised by the Campaign |
Fundraiser Goal Amount | Currency(16, 2) | The current fundraising goal of the campaign |
Team ID | Text(255) | The ID of the team that the campaign is supporting |
User ID | Text(255) | The ID of the user who created the campagin |
Slug | Text(255) | The slug can be used to get to the Tiltify webpage for the Campaign |
Original Fundraising Goal | Currency(16, 2) | The original fundraising goal of the campaign |
Region ID | Text(255) | The ID of the region that the fundraiser wants to support |
Region Code | Text(255) | The Code of the region that the fundraiser wants to support |
Region Name | Text(255) | The Name of the region that the fundraiser wants to support |
Published At | Date/Time | The date the campaign was published |
Campaign Type | Text(255) | The campaine type/template that was used to create the campaign |
Retired At | Date/Time | The date the campaign was retired |
Deleted At | Date/Time | The date the campaign was deleted |
Teams – Fundraiser can opt to fundraise as part of a team or fundraise to support a team
Field Name | Data Type | Description |
ID | Text(255) (External ID) | The Tiltify ID of the Team |
Name | Text(255) | The Name of the Team |
Created At | Date/Time | The date the Team was created |
Updated At | Date/Time | The last date the Team was updated |
Slug | Text(255) | The slug can be used to get to the Tiltify webpage for the Team |
Status | Text(255) | The current status of the Team |
Donations
Field Name | Data Type | Description |
ID | Text(255) (External ID) | The Tiltify ID of the Donation |
The email that was provided by the donor | ||
Amount | Currency(16, 2) | The amount of the donation |
Created At | Date/Time | The date/time the donation record was created |
Updated At | Date/Time | The most recent date/time the donation record was updated |
Payment Status | Text(255) | The current status of the donation |
Donor Name | Text(255) | The username the donor provided (if any) when making the donation |
Donor Comment | Text(255) | The comment the donor provided (if any) when making the donation |
Anonymous | Checkbox | Whether or not the donation should be anonymous |
Donation Payment Type | Text(255) | The Payment processor used to process the donation |
Public | Checkbox | Indicator on if the donation was processed as a donation visible to users following the campaign |
Transaction ID | Text(255) | The transaction ID of the payment processor |
Charity Can Contact | Checkbox | Boolean noting if the donor has opted into being contacted |
Completed At | Date/Time | Date the donation was completed |
User ID | Text(255) | The user ID (if exists) of the donor |
Fundraising Event ID | Text(255) | The ID of the Fundraising Event the donation was supporting |
Moderated At | Date/Time | The date/time the donation was moderated |
Moderated ID | Text(255) | The ID of the User who moderated the donation |
Campaign ID | Text(255) | The ID od the Campaign the donation was supporting |
Platform ID | Text(255) | Will note if the donation originated from Twitch |
Geolocation | Geolocation | The lat and long of the donor as determined by their IP Address |
Resources
Trailhead Data Security - Control Access to Fields
Trailhead Lightning App Builder - Work with Custom Lightning Components
Trailhead Lightning Experience Customization - Customize Record Details with Page Layouts
Trailhead Lightning Experience Customization - Create and Customize List Views