To make sure your Tessitura system syncs properly with crowdEngage, we need you to set up a few items in Tessitura:
IP Whitelisting
Please allow API access from the following IP addresses:
52.213.219.109
18.200.36.114
Permissions
1. Create an API User
In Tessitura Securities, go to Maintain Users and then to New. Create a new user for the Crowd Engage API. This user must be of the type API, you must set a secure password. If you use Control Groups, make sure to assign this user the relevant one. Make a note of the User ID, unencrypted password for later.
User Id | CEAPI |
Last Name | Engage |
First Name | Crowd |
Type | API |
Control Group | (Default Control Group) |
Application Password | [Something secure - make a note of it - please use an unencrypted password] |
2. Assign a User Roup
Next, you must assign a User Group to the User. If you need to create a new one, go to Maintain Groups and select New. If you use Divisions or Organizations make sure to select the ones you want Crowd Engage to view data from.
Make a note of the Group ID
3. Give User Group access to Services
Next, go to services and assign the below services to the API user group.
We will need View access to the following resources:
- CRM/Constituents
- CRM/Constituencies
- TXN/ProductionSeasons
- TXN/Performances
- TXN/Orders
- TXN/Facilities
- TXN/Productions
- TXN/Titles
- AccessControl/EventControl
- ReferenceData/Theaters
- ReferenceData/PerformanceStatuses
- ReferenceData/SubLineItemStatuses
- ReferenceData/Sections
- ReferenceData/ConstituencyTypes
- TXN/InventoryWebContents
We will need View, Edit and Add access to the following resources:
- TXN/Orders
- Custom/Execute
- TXN/ProductionSeasons/Search
Stored procedure
You will need to add the following stored procedures in SSMS:
LP_CE_UPDATED_ORDERS:
CREATE PROCEDURE [dbo].[LP_CE_UPDATED_ORDERS]
(@start_dt datetime = null, @end_dt datetime = null)
as
SELECT order_no FROM T_ORDER
WHERE last_update_dt BETWEEN @start_dt AND @end_dt
GO
LP_AS_SUBLINE_ITEMS:
IF OBJECT_ID('dbo.LP_AS_SUBLINE_ITEMS', 'P') IS NULL
BEGIN EXEC('CREATE PROCEDURE LP_AS_SUBLINE_ITEMS AS SET NOCOUNT
ON;') END;
GO
ALTER PROCEDURE [dbo].[LP_AS_SUBLINE_ITEMS]
@order_no INT AS BEGIN SET NOCOUNT ON;
SELECT order_no, sli_no, ret_parent_sli_no, create_dt, last_update_dt
FROM dbo.T_SUB_LINEITEM
WHERE order_no = @order_no;
END;
GO
Please register the stored procedure in the TR_LOCAL_PROCEDURE System/Reference Table and make sure that the permissions are added to the Procedure to allow are set up for the stored procedure to allow Tessitura to execute it:
We will mostly only ever use this in 1 minute intervals. Once it is installed, please could you let me know the procedure name (normally LP_CE_UPDATED_ORDERS) and ID from TR_LOCAL_PROCEDURE and ensure our user has access to execute it?
4. CHOOSE A LOCATION FROM TX_MACHINE_LOCATION
In System/Reference tables in the Tessitura Application, select a machine that we should use to authenticate the user. We recommend creating a new machine name for our user.
Make a note of the Machine Name
We need the correct information as per below:
-
Tessitura base URL
-
UserID and unencrypted password (our system will encrypt this automatically)
-
User group ID
-
Location name
-
Stored procedure name
-
After we have confirmed your Ticketing system is set up we will need you to send over a CSV file that includes the order IDs for every booking for a future performance. This is to make sure all your customers are accounted for when sending out the messaging.
-
We will need to set up a unique subdomain that will link to crowdEngage. - We would usually recommend something like visit.exampletheatre.co.uk - Once you have chosen this we will send instructions to get it set up
-
If you wish to use email we will also need to set up a sender domain. This is usually something like mail.exampletheatre.co.uk - again we will send instructions for your web team to set this up
-
(UK/EU Only) For your SMS messages we also need a sender name. This can be a maximum of 11 characters including spaces so could be something like Example - this can take a while to register so it would be good to choose this one as soon as possible so it's ready when you go live. You can have two sender names if you'd like one for each venue.
-
If you are using the pre-ordering function and you don’t already have one, you would need to set up a stripe account at http://www.stripe.com it’s then really easy to link this to your crowdEngage account to receive payments.
-
We will also need the API key from your epos system if it is one that we integrate with. We can send over specific instructions depending on the system you use. If you are using the system manually you don’t need anything, we will let you know how this all works.
Once we've got the ticketing system linked up correctly and your subdomain is registered, we can run a training session for your team.. After training we would suggest running some test events and making sure that your team is comfortable with the whole process before going live. We will be on hand to help at each stage of testing and to customise the process depending on the needs of your organisation.
Tessitura Writeback
We can write back the sharing of tickets in crowdEngage to Tessitura. This process either creates or locates a constituent record, creates a relationship between the purchaser and the recipient of the tickets and then adds the recipient in the recipient field in the subline item of the ticket that has been shared. Screenshots of all of this are at the end of this document.
If you would like shared tickets to write back to your Tessitura system we need some additional information from you.
- Settings for new customers created by crowdEngage
When a customer shares a ticket on crowdEngage, the recipient must fill in some personal details to receive the ticket. We then search Tessitura for the provided email address. If that email address already exists on Tessitura, we use the most recently created constituent record. If it does not exist, we will create a new constituent. In order to do this, we need the following details:
- ID from TR_ORIGINAL_SOURCE for a constituent record created by crowdengage
- ID from TR_PHONE_TYPE for phone numbers in constituent records created by crowdEngage
- ID from TR_ADDRESS_TYPE for addresses in constituent records created by crowdEngage
- ID from TR_ASSOCIATION_TYPE for the Association between the Individual Lead Booker → Guest
- ID from TR_AFFILIATION_TYPE for the Association between the Household/Organisation Lead Booker → Guest
- Details to allow us to modify the order
We then need to open the original order and assign the recipient the sublime items of that order. To do this, we need to open a web session, and in order to do that we require the following details:
- An ID from Ticketing Setup > Mode of Sale
- An ID of a Source, found in Campaigns > Appeals > Sources:
- An ID of a Payment Method from Campaigns > References > Payment Methods
Please note, we will not change the Mode of Sale, Source or Payment Method on an order that has been shared, we merely need these details to be able to open and close the web session to make the amends to the orders
We also need you to provide the the User Group for our API user additional access to your Modes of Sales. Please ensure the User Group has access to all Modes of Sale so that we can load the order. Without this, Tessitura will throw an error in the same way it does in the application if a user tries to open an order made in a Mode of Sale they do not have access to.
- Permissions
If you would like to use your Tessitura marketing permissions to influence your crowdEngage sending we need to make a further API call. You do not need any further set up but please advise that you authorise this.
We then need you to tell us the names of the permissions you are using and we will create our rules for sending based on this.
- Which numbers/emails you send to
The default in crowdEngage is to send messages to the newest email or mobile phone number on record. This is on the basis that it is likely the newest is the most up to date and likely to reach your customer. If you’d like to change this to look at fields in a different order. Please let us know which fields using their ID numbers.
How the write back appears in Tessitura
The purchaser will have an association added to their record for the person the ticket was shared with:
The recipient will have a record created with the reciprocal association. They will also have the original source determined in your set up:
The order will have the recipient added in the subline item for the shared ticket: