Hi!
I've had such good luck on the forums...but this one might be a little hard for me to explain, so bear with me. I apologize in advance if this too broad or if I'm not providing enough info to help troubleshoot.
We send a daily email to all patrons who attended the performance the night before (perf_code from a local view which joins T_ORDER_SEAT_HIST and T_SUB_LINEITEM) . These lists are dynamic and are automatically re-generated every day through wordfly (or email application). The problem is, I'm not sure how to identify patrons whose tickets were NOT scanned (assumedly because they did not attend the show). We'd like to send them a different message and give them the opportunity to exchange their tickets into something else.
Do any other organizations ever send messages to patrons who did not have their tickets scanned and therefore, are assumed to have missed a performance?
Any help would be great. Otherwise, I'll have to begin training carrier pigeons. :-3
Thanks,
Tiffany
I don't have direct advice, but this sounds like an excellent opportunity to use a suppression in Extractions.
Thanks Brian.
I see that, but there doesn’t appear to be an event code for NOT attended…at least I don’t think there is.
Here’s the query I have for finding attended seats (A fellow Tessitura user was kind enough to give this to me earlier this year):
SELECT c.season, c.perf_code, c.perf_dt, a.customer_no, SUM(b.paid_amt) AS paid_amt
FROM dbo.VS_PERF AS c WITH (NOLOCK) INNER JOIN
dbo.T_SUB_LINEITEM AS b WITH (NOLOCK) ON c.perf_no = b.perf_no INNER JOIN
dbo.T_ORDER_SEAT_HIST AS a WITH (NOLOCK) ON a.sli_no = b.sli_no AND a.perf_no = b.perf_no AND a.seat_no = b.seat_no
WHERE (a.event_code = 22) AND (a.customer_no > 0) AND (a.id IN
(SELECT MAX(id) AS maxID
FROM dbo.T_ORDER_SEAT_HIST
GROUP BY order_no, perf_no))
GROUP BY c.season, c.perf_code, c.perf_dt, a.customer_no, a.event_code
From: Tessitura Technical Forum [mailto:forums-technical@tessituranetwork.com] On Behalf Of Brian Wilbur Grundstrom Sent: Tuesday, October 01, 2013 2:40 PM To: Tiffany Evans Subject: RE: [Tessitura Technical Forum] pulling list of patron who did NOT attend
An event code in T_ORDER_SEAT_HIST of 22 indicates attended.
From: Tessitura Technical Forum [mailto:forums-technical@tessituranetwork.com] On Behalf Of Tiffany Evans Sent: Tuesday, October 01, 2013 2:17 PM To: Brian W. Grundstrom Subject: [Tessitura Technical Forum] pulling list of patron who did NOT attend
This message was sent automatically to you by www.tessituranetwork.com because you subscribed to the Tessitura Technical Forum. You may reply to this message to post to the Technical forum or visit the site to search, read and post to the forums. In the interest of keeping the forum posts from becoming cluttered, we encourage you to delete previous message text from your reply before sending. Thank you!
I completely agree, Gawain.
Sadly, in order to send a triggered email in wordfly, it needs to be a dynamic list. An extraction can’t be dynamic. L Booo!
From: Tessitura Technical Forum [mailto:forums-technical@tessituranetwork.com] On Behalf Of Gawain Lavers Sent: Tuesday, October 01, 2013 2:52 PM To: Tiffany Evans Subject: Re: [Tessitura Technical Forum] pulling list of patron who did NOT attend
From: Tiffany Evans <bounce-tiffanyevans7088@tessituranetwork.com> Sent: 10/1/2013 1:11:50 PM
Thanks Heather!! J
Yes, this view has been very helpful!
I think I just don’t know the syntax to suppress people from the dynamic list.
Do you do something special with the criteria to pull people who do not have the “attended” event code but were ticketed for the performance?
From: Tessitura Technical Forum [mailto:forums-technical@tessituranetwork.com] On Behalf Of Heather Kraft Sent: Tuesday, October 01, 2013 2:57 PM To: Tiffany Evans Subject: RE: [Tessitura Technical Forum] pulling list of patron who did NOT attend
Hi Tiffany -
We've made a custom list criteria element going off a view (although the view is not necessary, we use it for a couple of other things as well). The view references the event code that Brian highlighted.
Then we use that to pull (or suppress) people from our dynamic lists that we pull the next day. We actually call our subscribers who missed a show (vs email). But either way, it lets us suppress people in a 'Thank you for coming' when they didn't actually make it to the show. At least we're not rubbing salt in the wound. :D
Have fun!
Heather
From: Brian Wilbur Grundstrom <bounce-brianwilburgrundstrom7163@tessituranetwork.com> Sent: 10/1/2013 1:25:33 PM
This is where you start making your cascading 'lists of lists inside lists'. *grin* So I have a dynamic list that is anyone who DID attend. Then in my 'did not attend' I'd make a list of anyone who had tickets for that night, but were not on the attended list. You can also do this with careful application of has/does not have in one list, but since I already needed a list of attendees I just built off that list as I was being lazy.
Does that make sense?
- Heather
Hi Tiffany,
There is also a report called "Attendance By Performance" in the Ticketing Box Office folder that I used when I was at KC Symphony for this very reason. I would run the report for "Attended" then "Not Attended" save each of them as a list. Then send each list an email from Wordfly. Only downfall it wasn't a triggered email, I had to manually do it each time.
Melissa Champ
Unknown said: Do you do something special with the criteria to pull people who do not have the “attended” event code but were ticketed for the performance?
FYI, in case it's helpful, the code below will find customer_no's that had TPD status tickets to a perf, but weren't scanned, i.e. didn't attend, as BWG described above.
select distinct o.customer_nofrom T_SUB_LINEITEM li (nolock)join T_ORDER o (nolock) on o.order_no = li.order_nojoin T_ORDER_SEAT_HIST sh (nolock) on li.order_no = li.order_nowhere li.sli_status in (3,12)and o.customer_no > 0and li.perf_no = 15266 -- subsititute your perf_noand sh.event_code = 2 -- printedand not exists ( select 1 from T_ORDER_SEAT_HIST x where x.order_no = li.order_no and x.event_code = 22 -- attended)
Oh Heather! :)
I think I see what you're saying. I was having some trouble with my lists--- that referenced other lists--- that referenced other lists...etc....
I'm trying it now and it seems to be taking forever to run, but I'll let you know if it works!
As always, you rock. Keep being awesome and thanks for your help.
Thanks Chris.
I like this except I would still need to go into the dynamic list and manually change the perf_no.
Otherwise, this is lovely.
I'm unfamiliar with your org; Do you have more than one perf per day? Depending on a few things, your manual list code could find the correct perf_no each day, too.
Sorry, yes...sometimes we do. We have multiple venues and the venue is often considered a part of the performance name to help with setup and help with quickly identifying the show.
For example: YYY0930E would be the performance name for the show that was in the YYY theatre on 9/30 in the evening.
Unknown said: Sorry, yes...sometimes we do. We have multiple venues and the venue is often considered a part of the performance name to help with setup and help with quickly identifying the show. For example: YYY0930E would be the performance name for the show that was in the YYY theatre on 9/30 in the evening.
Assuming you'd run the code the next day you code make it something like:
select distinct o.customer_nofrom T_SUB_LINEITEM li (nolock)join T_ORDER o (nolock) on o.order_no = li.order_nojoin T_ORDER_SEAT_HIST sh (nolock) on li.order_no = li.order_nowhere li.sli_status in (3,12)and o.customer_no > 0and li.perf_no = ( select perf_no from T_PERF where facility_no = 123 -- subsititute your facility_no and right(perf_code,1) = 'E' -- this kind of thing, or maybe time_slot, to confine to evening perf of "YYY0930E" and perf_dt = perf_dt - 1 -- i.e. yesterday)and sh.event_code = 2 -- printedand not exists ( select 1 from T_ORDER_SEAT_HIST x (nolock) where x.order_no = li.order_no and x.event_code = 22 -- attended)
and we have multiple venues with multiple shows, so the performance IDs are not always in natural order. :(
Some variation of the above code could work, perhaps for a different list for each venue, or the like.
Don't give up! :-)
That looks so nice, but it gave me 0 constituents, though the query was successful.
I even tried playing with the perf_dt as I thought maybe it was a dynamic date issue, but I'm not seeing anything.
I'll keep trying... we're so close!!! :)