Integrating Contact Point Purposes

Tessitura Contact Point Purposes (CPPs) provide a simple approach to customizing communication preferences for individual email addresses within a constituent record in Tessitura. By integrating a CPP with a list or tag in Prospect2, it will allow you to seamlessly keep key data points updated between both applications. 


Enabling Contact Point Purposes

To enable the use of Contact Point Purposes with Prospect2, a plugin needs to be installed. This plugin enables the list subscribe/unsubscribe or tag add/remove action from an email address in Prospect2 when an integrated CPP is added or removed from the email address in Tessitura. 

1

Place the Appropriate File in the TessituraService/Plugins Folder on Your API Server  

Place the appropriate DLL file for your version of Tessitura into the TessituraService/Plugins folder. Contact us at help@prospect2.com for the correct plugin that you'll need to install. Please include the current version of Tessitura that you are on. Example: v14.1, v15.1, etc


2

Place XML Between <PluginConfigs> and </PluginConfigs>   

Place the following XML between <PluginConfigs> and </PluginConfigs> nodes of the PluginConfig.xml file located in the TessituraService folder.

<PluginConfigs>
	<PluginConfig>
		<UriMatch>CRM/ContactPointPurposeMaps/*</UriMatch>
		<Verb>DELETE</Verb>
		<FullPluginName>Prospect2Plugins.ContactPurposeUpdate</FullPluginName>
		<PluginPlacement>PRE</PluginPlacement>
	</PluginConfig>
	<PluginConfig>
		<UriMatch>CRM/ContactPointPurposeMaps</UriMatch>
		<Verb>Post</Verb>
		<FullPluginName>Prospect2Plugins.ContactPurposeUpdate</FullPluginName>
		<PluginPlacement>Post</PluginPlacement>
	</PluginConfig>
</PluginConfigs>
3

Modify the Web.config File  

Modify the Web.config file located in the TessituraService folder. Locate the key <add key="EnablePlugins" value=false"/> and set the value to True.


4

Save Your Changes  

Save your changes by either recycling the IIS Application Pools for the API server or by performing an 'iisreset' from the command prompt of the API server to force the changes. Although this takes just a few seconds, it should be done during off-hours to avoid conflicts with any existing API sessions. 

There is also a second key that can be modified when working in the Test system. The key is <add key="ReloadPluginConfig" value="false"/>. Setting this to 'true' will reload the plugin on each call to the service without requiring a restart. 

This should never be set to 'true' in your LIVE production system. 

Associating Contact Point Purposes with Prospect2 Lists or Tags

The Prospect2 Contact Point Purpose plugin must be installed prior to attempting CPP assignments. 

1

T_DEFAULTS  

In the T_DEFAULTS table, locate the following field names

  • P2UpdateContactPurpose: Set the Default Value to 'YES.' Setting the value to 'NO' will cause webhooks to be rejected  
  • P2ApiUrl: Set the Default Value to your Prospect2 API URL
  • P2ApiKey: Set the Default Value to the Key listed in your Prospect2 dashboard

These two keys can be found in your Prospect2 dashboard under the Development tab within Settings

2

TR_CONTACT_POINT_PURPOSE_CATEGORY  

The values in this table are used to group and control-group Contact Point Purposes. Our process checks to see if 'prospect2%' exists in the description column of this table. If it does not exist, a row is automatically created with the description of 'Prospect2 CPP's'

Create the desired Purposes and select the Control Group, if applicable.  

The description name can be customized by your organization without impacting Prospect2 processes. Your organization can utilize an existing CPP category, or update the description of 'Prospect2 CPPs' should they desire to do so. 

Consortiums:

Consortiums can apply multiple Contact Point Purpose Categories and use the Control Group column to designate specific CPP categories, per organization.

3

TR_CONTACT_POINT_PURPOSE  

Create the desired Contact Point Purpose and select the appropriate Purpose Category. There can only be one CPP assigned per Prospect2 list or tag. 

To integrate with Tags, the Contact Point Purpose Description and the Prospect2 tag must be wrapped in straight brackets; Ex: [TagName]


Keep in mind that implementing Contact Point Purposes does not automatically update retroactively. Contacts in lists or with tags that exist prior to the association of the CPP in question will not have CPP automatically applied in Tessitura. 


Should you wish to proceed with a CPP integration with an existing list or tag, there is a process to backfill existing List Subscribes and/or Tags. It will update assigned CPPs to existing email addresses in Tessitura.

Please reach out to us at help@prospect2.com for assistance if you would like this done for an existing list or tag. 


4

TX_CONTACT_POINT_CATEGORY_PURPOSE  

Create a row for each integrated Contact Point Purpose and select the Email Address Contact Point Category from the dropdown.

Prospect2 currently only integrates with email address-level Contact Point Purposes, so each integrated CPP must be assigned the Email Address Contact Point Category in order to appear on email addresses. 



Integrating Contact Point Purposes with Prospect2 Lists

1

LTR_P2_ELISTS  

A new list must be added to the LTR_P2_ELISTS table in Tessitura and could be done in one of two ways: 

  1. Create a new list in your Prospect2 dashboard. That will automatically add the new list to the LTR_P2_ELISTS table
  2. Manually add a row to the LTR_P2_ELISTS table. You must also add the corresponding Prospect2 List ID in the designated Prospect2 List ID column, and set the Organization Name column value to match your account's org name (eg. Tessitura Web).

    Prospect2 List ID's can be found in the Pro2 dashboard - the ID will display in the URL of the list when you hover over your list. There must be a corresponding Prospect2 List ID to associate a CPP with a Prospect2 list.


Contact Point Purposes: Webhook Updates in Prospect2

1

Go to the Webhooks Page in Your Prospect2 Dashboard  

Under the Settings Menu, click Developer, then Manage Webhooks.

2

Choose Edit  

Select Edit for the Tessitura Webhooks row

3

Check the Appropriate Boxes  

Check the following boxes to turn on Webhooks for these actions taken. 

If a webhook is sent to Tessitura for an email address that does not exist in Tessitura, the CPP tag/list preference is stored in the LTX_P2_UNASSIGNED_EMAILS table. 

There is a required procedure that is included with the Prospect2 install script.

LRP_P2_UPDATE_PURPOSES: Allows your organization to schedule the process to check for the new email addresses added to Tessitura within a specific number of minutes. Then, if an email address from LTX_P2_UNASSIGNED_EMAILS matches a new email, the integrated CPPs are added. 

Webhook Functionality

Subscribe
(Contact Added event)
  • Indicates when a contacts email address has been added to a list
  • When we pass the hook information into Tessitura, if a CPP has been associated to the list ID in the webhook payload, the integration will add the CPP to the email address record accordingly
Unsubscribe
(Contact Unsubscription event)   
  • Indicates a contacts email address was unsubscribed from a dashboard list
  • Associated CPPs will be removed from the unsubscribed email address if you have associates a Contact Point Purpose to the list ID in the hook payload 
Tag Add
(Contact Tag Added event)
  • Checks TR_CONTACT_POINT_PURPOSE for existing CPPs that match the tag description and adds the tag if the CPP exists 
    • Example: A Prospect2 tag of [Ticket Performance Info] must have a corresponding definition in TR_CONTACT_POINT_PURPOSE with the same name in order for the CPP to update 
Tag Removed
(Contact Tag Removed event)
  • Checks TR_CONTACT_POINT_PURPOSE for existing CPPs that match the tag description and removes it from the email address if the CPP exists 
Updated
(Contact Updated event)
  • When the Contact Updated box is checked, both Tags and Lists associated with CPP's will be updated
  • When the Contact Updated box is unchecked, only Tags associated with CPP's will be updated 

Still need help? Contact Us Contact Us