What is Tessitura
Tessitura is a software for arts & culture that combines CRM and ticketing system along with marketing and fundraising tools. It is widely used by many kinds of organizations such as theaters, museums, operas, orchestras, dance centers and more.
Why focus on Tessitura
The Tessitura company is great at marketing and sales. They know how to target arts & culture organizations and help them grow. Their website (https://www.tessituranetwork.com/) is full of references and successful stories on how using Tessitura makes life easier for managers and employees in cultural organizations.
Perfect! But what do we lack here? Communication for developers.
Let’s imagine the following situation. You are a software developer and you are just about to start this new exciting project for the most important theater in your country.
You and your team is supposed to make a modern CMS for your client. Awesome! You’ve already built a couple of similar systems throughout your career. Also the client would like to have an integrated e-commerce platform where users can book their tickets. That’s even better. You know what makes a good e-commerce so let’s just start the work.
You’ve heard that the theater use a system called Tessitura. You haven’t heard it before but you are a developer so you are very confident — as long as there is an API and some docs you’re gonna find your way through.
The designers are sketching the charming UI. You are architecting the system and cannot wait to start writing some code.
Ok, you finished the project setup, wrote some boilerplate code required by the framework, made some test calls to Tessitura API just to ensure that the connection is working.
And here the hard part begins. You have no idea how to integrate with Tessitura API. You don’t even know which API should you choose (they have both SOAP and REST API). The team is waiting for the new tasks in Jira. The project manager is waiting to set up a first small live demo with the client. And you’re just sitting here with the vast documentation wondering what all these terms mean.
Let’s begin with identifying the problem: Tessitura is an extremely complex system with powerful yet overwhelming API. The documentation is there but it only describes the endpoints. It says nothing about how they should be used and what are the entities used in the API. What is more, there are over 1600 endpoints. Way to many to just reverse engineer it.
This series of articles aims to shed light on Tessitura API and facilitate your work as a developer who integrates with Tessitura.
Tessitura use cases
Tessitura consists of many modules that work together to provide a unified experience for the whole cultural organisation.
The box office uses Tessitura to manage orders and customers. The employees can either sell tickets directly to customers or handle bookings via phone. They will mostly handle orders and make sure that customers receive their tickets.
The marketing department is more interested in campaigns and encouraging both existing and new customers to come for the show. They can for example create an email campaign and send marketing emails for people subscribed to the newsletter with a promo link that enables to buy the tickets cheaper. They are also going to decide when there should be a special offer for a particular show.
The Tessitura administrators need to make sure that everything is set up correctly including productions, production seasons, performances and venues.
As a developer you are going to work with all these departments so make sure you understand what they are responsible for and what are they goals. Be careful: different departments can have contradictory goals and your role is to find the best, often middle ground solution.
Tessitura from the developer’s perspective
Choosing the API
When integrating with Tessitura you are going to exchange data via API. Currently there are two APIs supported (the SOAP API and the REST API) but the SOAP API will no longer be supported soon so we will focus on the REST API only.
The documentation is not publicly available but you are going to get access to it when your organization sings you up as a developer.
For authenticating the requests Tessitura uses Basic Auth. You will be assigned a username and password that must be included in HTTP header in every request. The most convenient way to test Tessitura integration is to make calls to the api using Postman. Here are the steps how to do it:
- Import the postman_collection.json file into Postman
- Set up the base URL to point to your test Tessitura server
- Set up Basic Auth for the whole collection so that all the requests have a proper HTTP Authorization header set (Basic Auth with username and password)
You will get access to support system where you can submit tickets regarding topics such as:
- Ask questions about the API and integration
- Submit bug reports (yes, there are bugs in Tessitura)
- Live to test requests (when you want to copy your Tessitura production to test environment)
The support is very helpful and usually will provide you with correct instructions.
- The fastest and more reliable way to get help often may be Tessitura’s Slack. The workspace is full of other developers who work with the system so go and register as a developer here: https://tn-webshare.slack.com
It was the first article in a series of three articles about Tessitura. In part 2 we will go through the typical integration scenario when you want to present the ongoing performances on the organization’s website.
Part 1 is also out on Medium: https://medium.com/@jkubisiowski/tessitura-for-developers-part-1-d4c068f4e8f6
Thank you for reading. If this article helps you with your work I’m looking forward to write more than just three. Please let me know if you are interested on the email below.