Category: Changelog

Changelog: Winter is coming


We continue to work feverishly behind the scenes on the next version of Tito but in the meantime here are some pulls, tugs and tweaks to our existing app:

  • ⚙️ Added the maximum upload limit for file type questions (tl;dr it’s 5MB)
  • ⚙️ Added a link to our privacy policy from our event homepages on the advice of the W3C Advisory Board (?)
  • ⚙️ Added title attributes to the input fields on the event homepage for accessibility and on the advice of the W3C Advisory Board (double ?)
  • ⚙️ Made some changes to the language and arrangement of invoices and receipts based on regional requirements
  • ? Fixed an issue with discount codes on donation type tickets
  • ✨ Broke out docs into a separate app and added algolia search
  • ⚙️ Updated the Stripe country list in Payment Options to reflect the latest beta statuses
  • ⚙️ Added an option to allow the assigning of unassigned tickets when tickets are locked by the organiser (private beta feature)

Update!

  • Added a section to the docs about the mystical world of Open Graph data used when sharing links on various platforms

Changelog: It’s The Final Countdown


I’m lucky because I love what I do — it’s a privileged position for sure, but taking a break is healthy. And especially when it’s to welcome a new arrival into the world. So while we wait for d-day and before I’m elbow deep in newborn nappies again here’s my last changelog for a few weeks…

  • ⚙️ Added ticket unvoided webhook
  • ? Fixed an issue revealing secret tickets via a discount code when a custom domain is being used
  • ✨ When a ticket is locked (private beta feature) we’ve tweaked the behaviour based on feedback so that ticket assigns optionally cannot be done without contacting the organisers
  • ⚙️ Added event date and location to the account ticket export
  • ⚙️ Enhanced our Tito widget to play better with Google Analytics

Changelog: Check It Out


  • ✨ Some tweaks, tidies and improvements to the UI and language around assigning tickets in the checkout. Hopefully this will make things clearer, but do let us know what you think via the button below. We’ve also added some documentation to give you a better idea of what happens when an order is placed: https://ti.to/docs/checkout
  • ? Fixed an inaccurate timezone indicator on the event homepage schedule section by removing it. We might bring it back at some point
  • ? Fixed an issue where you couldn’t log a refund in Tito after the payment gateway refund period had expired
  • ? Tidied up a couple of inconsistencies on the order confirmation email
  • ? Allow organisers to log refunds even if the time period for performaing a refund has passed
  • ? Fixed a bug where the attendee file uploader would silently fail when the size limit was exceeded
  • ? Fixed a couple of super embarrassing typos in the docs that we shall never mention again
  • ? Fixed a super weird edge case bug where the assign window wouldn’t pop up when it was supposed to
  • ? Doc’s favourite commit message of the week:

3d24b56.jpg

Changelog: Times They Are A-Changin’


I know I said we didn’t do much “onstage” stuff, but what I meant to say is that we didn’t do much big onstage stuff. Here’s a list of a few of the smaller things that have kept us busy since our last changelog…

  • ? Fixed a receipt layout issue when hiding tax types
  • ? Fixed a confusing billed/unbilled figure in the Reports section
  • ? For those having issues selling ticket in Vietnamese Dong (this could have just been one very, very patient customer — thank you Rachman) the bug be gone
  • Tablet users needing to accept lenthy terms for an event will no longer be screaming in scroll-less frustration (sorry)
  • Broken images and video for The Dude have been patched
  • We created a page for EU VAT advice we’ve been given by some people who know way more about VAT than us: https://ti.to/docs/vat (feel free to link to it)
  • ? Fixed a bug where the company name mandatory setting in the Tickets view was being ignored
  • ? We’ve dropped our pricing for those on the highest 5% tier — they can now enjoy a 3% rate (see separate in-app message)
  • ? Fixed some issues with emails being sent when reassigning tickets based on manual orders
  • ? Event emails sent now include share links in the footer
  • ? Daily digest emails should now arrive at 8am your time rather than our time
  • ? Added a link to the Android Play store for our Android check-in app because I’m pretty sure nobody but us knew we had one
  • ? PDF order invoices now have a paid/unpaid stamp
  • ? Add functional pricing (private beta feature)
  • ? Add an option to exclude the ticket list from messages sent to attendees
  • ? Make it clear if a waitlist ticket can’t be offered due to the ticket having expired
  • ? Include individual open stats for messages sent
  • ? Let organisers limit the total number of tickets per order
  • ? Various improvements to the duplicate event function
  • ? A not insignificant amount of tweaks, fixes and polishings to private beta features
  • ? A completely new app to handle our billing… we call it “the billing app”
  • ? Added manual verification of accounts to allow message sending from Tito. Because spammers.
  • ? A whole bunch of updates to the API and webhooks — too numerous to list

So, we’re back to our regular *cough* posting of changelogs… did you miss us? Of course you did!

Changelog: Commit message quality control edition


It has been almost eight months since our last changelog post, too long and with things not so fresh in my mind I have been going through our commit logs to remind me what changes have been made.

But first, after reviewing eight months of commit logs I spotted some quality commit messages that got past our QA department. Authors who will remain nameless, you know who you are 😉 The most descriptive commit message award has to be given to “see if this is better”, the most confusing award goes to “unescape tennis”, the most worrying for “no idea” and the best intentions but otherwise useless goes to “making Paul happy”. The overall winner had to be “oops #pantsdown”. (Sorry)

Anyway here a list of some of the smaller changes we have been making. For the bigger changes and new features stay posted, updates are coming soon.

  • Introduced a new file question type so files can be attached to tickets.
  • Interested people can now be imported in bulk.
  • Tickets can be now be duplicated.
  • iCalendar (.ics) files are now attached to ticket emails.
  • Added the ability to embed Wistia videos on event pages to go with YouTube, Vimeo and a couple of others.
  • Organised and added more detailed descriptions of the settings in the Customise section.
  • Added Foursquare support for event venues.
  • Fixed the “Contact the organizer” mailto link which wasn’t working in Chrome.
  • Imports can now contain UTF-8 characters.
  • Reworked our import pages to give a better indication of their progress.
  • Added support for .xsls imports.
  • Added country name to ticket webhook requests.
  • Added progress indicators for Excel, Pdf, Zip file exports.
  • Fixed Excel exports so phone numbers would be handled correctly.
  • Added the ability to export CSV/Excel versions of receipts.
  • Moved the currency symbol from every row to just the header row in exports.
  • The refund type e.g. logged in Tito only or logged and processed is now included in the Orders export.
  • Fixed some registration fields and checkbox question fields which were not being highlighted correctly when left unanswered.
  • Fixed the used discount quantity on zero value discount codes and discount codes applied to free tickets.
  • The ordering of questions when they are attached to both Tickets and Activities can now be controlled.
  • Add filters to find expired waitlist offers and to find used or unused discount codes.
  • Fixed a bug in the 24 hour summary email where the event totals was being counted up to the time the email was sent instead of up to the end of the previous day.
  • Added a setting to control the title/description of links to your event when they are posted on Twitter, Facebook or Slack.
  • Updated the public timeline of events page.
  • Added Tito fees VAT to the figures on the Reports screen.
  • Introduced a setting to prevent event pages being added to search engines.

Changelog Gavin Sheridan Edition


Dear Gavin, (he’s sat next to me here in the office, so why not write the changelog as a letter to him?)

It’s been over 3 months since last I wrote a changelog. It felt like 3 weeks. I’m scarlet.

But we haven’t been idle, as our last few blog posts indicate. We’re now a real company, with our own GitHub organisation and businessy things like a balance sheet, and a P&L chart that shows that we spend way too much on subscription software. But at least we know now, right?

Not only is our business savvy on the up, but we’ve been doubling down on keeping Tito nice and stable, bug-fixing our happy little faces off, and introducing a few little surprises here and there—which I’ll tease below—in the usual changelog fashion. Here goes!

  • As requested by Andrew Martin in a delightfully English way, we now have “Add to Google Calendar” as an option from the view ticket screen. Even though I’ve never used the “Add to Calendar” option in Tito, loads of you seem to swear by it.
  • We’ve long teased API access, but we’ve been pretty unhappy with the API that we were working on. A few months ago, we started work on a new jsonapi-compliant API and we couldn’t be happier with how it’s shaping up. It’s still pretty basic right now, so it’s not much more than changelelog-worthy when it comes to news, but if you want to follow along, the docs are being updated here (source), I’m working on a rubygem here (source), and there’s even an unofficial node.js client. Super, super, super excited about this one… Feel free to play around … and feed us back (support@tito.io) if things don’t work.
  • The Company Name field was being shown in every confirmation email, even for events where it wasn’t being used. It only shows now if it’s been filled.
  • We added error messages to ticket imports. Our importing process could be improved so much, and we’ll get to this eventually, but for now “less shit” is better than “completely crap”.
  • Teeny tiny bug that’s so small it’s barely noticable on the dashboard was fixed.
  • Another few tiny bugs that neither you nor I care about were fixed.
  • Yep, more tiny ones. Like, these are bugs that probably affect 2 people. Maybe even just 1 person.
  • We were seeing an issue where if you uploaded a banner image with the same name as your previous banner image, then you’d continue to see the old one, because it would be cached in our CDN. Now when you upload a banner, we take the md5sum of the uploaded file and use that as the filename. Cache. Busted. Pow!
  • We weren’t displaying your custom email signatures in ticket-related emails. Sorry about that. Thanks to an eagle-eyed customer, we finally took notice, and … now we are!
  • Finally (as if that wasn’t all impressive enough? We’re only a team of 3!!!): File question types. We snuck this in quietly last week on behalf of a customer who sponsored the feature. You can now set a quesiton to be a “File” type and your attendees can use it to upload a file when they’re completing questions on a ticket. When you view the responses, you can download them all at once as a zip file. Beautiful!

As a bonus, we have a few new private-beta features that you might want to help us kick the tires on. Just let us know if you’d like to try these and we can enable them on your account:

  • Test mode. This allows you (if you’re using Stripe) to process transactions using your Stripe test account, and they’ll end up in Tito in a “test” environment, without muddying up your live environment. Great for … testing!
  • Custom roles. We’re beefing up our team support to add custom roles so that you can go a bit more fine-grained on what your teams can and cannot do. It’s still in development, but will be available for testing shortly.

So there you have it, all up to date and delightful. I’m most excited about the API stuff, and we’re going to tag-team on that and roles to try and get them nice and production-ready in the next few weeks.

Anyway Gavin, thanks for visiting the office today. That’s it for another edition of the Tito changelog. You’re a great fella. Thanks for the tea. Now: pint?

—Paul

All The Small Things


It’s been a while, but we have not been idle! Here’s a rundown of the many, many small updates we’ve pushed over the past 5 weeks:

  • PayPal Refunds. PayPal disallows API-based refunds after 60 days. Who knows why? Then again, who really knows why PayPal do anything. In any case, Tito is now much more explicit and helpful when a refund is no longer possible.
  • The “No results” message for empty searches was duplicating. Sadness levels of all empty searches have been halved by only displaying the message once.
  • 60% of all errors that look like this “[Tito/production] CSV::MalformedCSVError – Illegal quoting in line 2.” no longer happen. We can only assume that somebody was trying to import passages from distasteful books.
  • Fixed an issue in the web-based checkin app that was causing it to crash in certain circumstances. For about the millionth time.
  • The beta “Waiting List” feature didn’t work with the Tito button. Clicking “Join Waiting List” would leave you waiting quite a while and nothing would happen. Now when you click it, the cool 3d effect happens to open a modal within a modal. Whhhhooooaaaa!
  • A rake of really tiny bugs that most people won’t ever notice, but helps us sleep better at night.
  • Added the ability to choose a custom background colour for event homepages. In general, we’re much more on board with customisability of Tito pages and we have some cool things coming, but this one has been requested so many times, it just makes sense. Let the interior decorator in you out, and go wild!
  • Another rake of bug fixes featuring fixes to things like slugs, refund processing errors, caching, link icons and browser overlay errors.
  • You can no longer reduce the quantity of a ticket below the number that has been sold / issued. Because that would be silly. It was silly. Tito is now that little bit less silly. But only a little bit.
  • Fixed a bug in the Message compose window that was preventing a Mozilla employee from sending a message using Firefox. Morto! Scarlet!
  • Disabled opening a new window in a mobile window. This was preventing orders within mobile browsers embedded within, say, Twitter for iOS or something. A real pain.
  • Added the ability to customize the pre-filled message when posting to Twitter. Now you can make the language match your audience. Bae. Right? That’s a thing?
  • Added a slew of options to tickets to set requirements for name, email, company name and VAT number. Disabling all requirements means allowing for super efficient checkout, particularly for things like a concert, where you don’t necessarily need everyone’s name.
  • Added a “Test Webhook” link to the webhooks screen. How anyone ever implemented anything with Tito’s webhook implementation before this is beyond me!
  • Fix to the overlay with a bug that caused an infinite spinner if you pressed “Continue” rather than “Apply” after adding a discount. Asynchronous JavaScript events. How does anyone even?
  • Emoji support! ?????????☀️???????⛵️?????????????????? … you can now use emojis in your event names, descriptions etc. Even discount codes. Try it!

Action Stations


Action Stations!

“Let’s see if we can get rid of the ‘Actions’ menu” he said, coyly. 5 weeks and over 500 commits later, we’ve gone and shipped our 2nd major UI update in 4 months. This one builds on the strengths of March’s release, adding tons of improvements, fixes, niggles ironed out, and sanity restored to many, many screens.

Kudos, thanks, praise and free tickets to our celebration party go to Peter McDonagh for some really fantastic UI work on this release.

  • A “woah” UI

    • A cleaner, clearer home screen The previous home screen was quite heavyweight and dragged attention every which way. Today’s home screen is light as a feather, highlighting the two things that we want to get you to quickly: your last viewed event, or the New Event link. Everything else is there if you need it, just out of the way.
    • Event nav that gets out of the way If our event nav and app header used to be a set square on top of the main UI, it is now a mount that the UI sits on: exactly where it should be. Rather than shocking blue, the blue-gray sits behind the main content, and the shocking blue acts as a highlight. The whale-grey and shocking blue stick true to the original “marine” theme that we were going for.
    • Considered list views for Tickets and Orders Long relegated to the simple formula of “Name, email, other”, our list views now introduce a structure of their own. Tickets are now listed with their sales counts and status inline. Orders lead now with their reference, which is the essence of an order, with clear payment status. Elsewhere, list items are more consistent.
    • Simpler “inner” stats dashboards “No order selected” clearly shows that this is where order details will appear when selected. If a list is empty clearer empty states give an overview of what the section contains, and clearer call to actions use shocking blue: since we’ve taken blue from the main nav, it’s now particularly effective as a highlight/call-to-action colour. Exactly as it should be.
    • Consistent visual headers Details screens now share a consistent clear header. We’ver restored the close “x” button to a more conventional position, and introduced a consistent place for edit links across all of the detail screens. These headers give a clear sense of orientation at a glance, while providing quick essential information.
    • An order details screen that looks like an order In terms of a redesign, this is where we started. “An order is an order, so it should look like an order”. Orders now look like what they represent: styled as a flat skeumorph of an invoice, with order details and payment history outlined in a single view that also includes context links and actions. There’s even a direct link to the payment provider. The rest of the interface is informed by this pattern.
    • An attendee details screen that looks like a ticket Just as “An order is an order”, “An attendee is an attendee” … or in this case, a ticket-holder. The attendee details screen now includes a flattened skeumorph that mirrors the attendee’s public ticket view, again with context links top right and actions bottom left.
    • A cleaner, clearer ticket details screen Despite being higher in the nav, this was the screen we addressed last, and is the most challenging screen in the app. The screen acts as a status, as well as a control panel to quickly alter the state of a ticket: whether it’s on sale, has particular requirements, should be on sale at a certain time, has particular questions attached, or is public or private. The scren stays consistent to the rest of the app, but introduces an additional header status with quick access to state and visibility toggles.

      • Toggle switches that slide Speaking of toggles. Pete’s comp included iOS-style toggle switches. Obviously these were going to be super handy for making quick clear changes to ticket states, but this isn’t native and we’re in HTML, CSS and JavaScript and. A quick web-search reveals that there are many iOS toggle switch imitators, but none of them actually slide. Rest assured, these toggle switches are clickable, tappable, springable, touchable, slideable and loveable. Please enjoy them at your own risk.
    • Cleaner Search/Filter/Sort/Export headers for lists Out of the way, there if you need them. Sensing a theme?
    • Goodbye to “Actions” menus This was the original intent of this redesign. “Actions” menus (or “kitchen sink menus”) are ultimate in style over substance. Necessary actions can be added willy nilly, but when it comes to finding core functions, the UI turns out unusable. All of our key screens now no longer have any action menus, with key actions appearing on the central view of details screens. Our hope is that it is now consistent, clear and obvious where actions are, and fewer folks will need to reach for support@tito.io! In general, links that show things in a different context are on the top right of details screens (like view PDF, view public links etc.), and actions (eg. refund, archive, void) are bottom left of details screens
    • Strong, clear, active states for list items Once again, now that the main nav is now longer sucking all the blue from the known universe, blue is put to good use as the active highlight colour for the current selected list item. And it looks smart.
    • Loading animations that accelerate time If you gaze into the centre of our new loading animations, you gain 500ms back of your life. Do it enough and we swear you’ll find yourself getting younger.*
  • Nicer words
  • We’re trying to build an app that feels great to use. This release puts a little bit more personality here and there, without going too overboard. There’s still a lot to do in this department, but we’re happy with the direction.

Along with the UI overhaul, we also shipped a few new features:

  • An updateable graph

    • For the longest time, our graph looked pretty if you had any data in the previous 30 days, but otherwise just stuck around like a rotting centipede painted blue and grey. By default, it now displays orders, tickets, page-views and uniques spanning your event creation until your event is over. You can also change the start and end dates to narrow down the graph to a date of your choosing. Much more useful, and our pledge to you that we care about visualising your data, and we’ll be adding more visualisations and more filter-ability soon.
  • starwavatars Since day zero, the force has been strong with the demo data that appears in Tito when you first create an event. Now we’re increasing our moon-count to 2. Anywhere we list attendees, if someone hasn’t set up a gravatar, we will display a … ahem … starwavatar. Thanks to Jory for the midi-chlorian-tastic icon set. All that’s left is for Pete to go and learn some lore. We may explore Middle Earth in the future…
  • “Import Attendees from CSV” A beta feature that’s been gathering dust in our “hasn’t shipped yet” cupboard for way too long. Does what it says on the label!
  • Paging, grouping and toggling for Dashboard activities Apart from a rather delicious restyle, the activity timeline on the event dashboard now has some neat functionality: First, it is off-by-default, but if there are new items, the bell on the dashboard lights up and you can pin the feed if you want it, or toggle it off. Next, if an action is repeated by someone, it is only displayed once on the dashboard. Finally, you can now page through all of the activity for an event if lots of things happen.

Aaaaaaaand a big breath. What a huge release. This is a pretty significant milestone for us. All that’s left to be said is: ?

  • You actually won’t. It’s just a trick of psychological perceived performance. You’re still getting older. Sorry.

Wait, wait, wait, wait, wait… and reveal


  • You may or may not have noticed (particularly may not if you aren’t in Ireland), but our bills now correctly apply Irish VAT. Go Team Ireland! Mr. Taxman, we’re doing our best.
  • In Customize -> Services, apart from the form being much easier to understand now, you can customize the message that is pre-filled when someone wants to share that they bought tickets on Twitter. Unfortunately Facebook doesn’t allow pre-filling. We could probably figure it out, but that would require spending time with Facebook’s API, which will probably have changed by the time we figure out how to do anything.
  • Fixed a few more little bugs when listing things. Tito is slowly getting better.
  • This one is rather delightful. While prepping some I18n features? (Ask us about them!) we added a British English locale. Soon you’ll be able to choose between being an organiser and an organizer. It’s kind of ridiculous how excited I am by this.
  • In our super-secret in-progress API, you can now access a JSON representation of your event report.
  • A gorgeous new activity summary. Out with the simple plain text of yore, and in with an even simpler, but stylish straight-outta-a-Swedish-design-house minimal HTML email. Woof.
  • And now for the little big news: waiting lists! A long time ago, in a galaxy far, far away, a man named Clemens created the Tito WaitlistedPerson model. The twin moons of Tatooine have spun many times since then, but today, Clemens’s dream comes alive: Tito now has a waiting list feature. Docs and announcement to follow, but for now, it’s in public beta, and everyone can use it. O frabjous day! Callooh! Callay!
  • We’ve made it to being feature complete. Out of the box, Tito can now:
  • Take expressions of interest
  • Email interested parties when tickets go on sale
  • Manage the ticket sales flow
  • Sell out, and enable a waiting list when a ticket sells out
  • Email secret links to people who joined the waiting list when tickets become available
  • Email attendees before during and after the event
  • Check attendees in on the day

All in a week’s work. Enjoy the weekend!

A Quick Links Update


In Customize -> Links, you can now add:

  • tel:// links, eg. tel://555-1234 … When someone taps the link on a mobile, the number will call automatically. (or enact the most annoying feature on OS X Yosemite: Facetime calling)
  • mailto: links, eg. mailto:other-email@somewhere.com … if the one email isn’t good enough for you, go nuts and add as many as you like.

Some more tweaks


  • Webhooks now fire in serial, so if multiple hooks for the same registration or ticket fire together, they’ll be sent to your web service in the order they were fired. Bam, bam, bam.
  • It’s the teeniest of tiniest updates, but what’s a changelog without those? Country select fields on tickets now display as a Selectize select, with type to search. Payment forms have had this for a while, so it’s just a catch-up tweak.
  • If we supported multiple languages (do we? don’t we?), then if the customer placed an order in one language, and then assigned a ticket to a colleague, then the ticket will show by default in the language it was ordered in.
  • When you connect a Stripe account, the Business Name of the Stripe account will show up. This will save a LOT of future confusion if you connect multiple Stripe accounts under the same email address.

New UI shipped weeks ago, but stuff is still being fixed


  • We added totals to the daily digest email. They now show you what your ticket sales/activity was like the previous day, but they also give you a summary of your all time sales and totals. This was was requested by Des Traynor. When Des says jump, you generally look at him weirdly. When Des says “I think you should have this feature”, you implement the feature.
  • Fixed a bug with the “void ticket” form appearing incorrectly after a ticket had been voided
  • Continuing the existential theme (hi Mr. Sartre), if we had a super-customizer tool, it would now respect custom variables a bit more, in addition to showing a preview of text-based emails, and if we supported multiple languages, you would now see both your email and your receipt in the language that you registered in, and if you were using the widget with multiple languages, you could pass locale as an option to set the language. Too bad we don’t have any of those features. That said, if we did, you most definitely would be able to specify terms and conditions in multiple languages. If only we had a terms and conditions feature.
  • Reports now show a tax-type breakdown as well as a revenue breakdown. Gold-dust when Mr. Taxman is screaming at you for ALL THE NUMBERS.
  • The Tito widget now supports Tito.instance … although undocumented as yet, this is super-fantastic, because it means that you get to control how the widget gets launched. Tito.instance takes a success callback, with the widget object as an argument, so for example, something like this works: Tito.instance('ultimateconf/2013', success: function(widget){ $('a.load-widget').click(widget.load) }) … the possibilities are endless. As a brief aside, this was implemented to support allowing the widget to be loaded by an onclick event of an area tag within … wait for it … an IMAGE MAP. They still exist.
  • Tickets added manually no longer incur a fee. Bye bye revenues, hello fairer pricing.
  • Before you archive a ticket, you will now be politely told that it also archives any attendees that registered using that ticket. Don’t say we didn’t warn you!
  • Some really old bugs that were fixed months ago got marked as fixed in our bug-tracker.
  • AAAAaaaand the big news: we implemented webhooks properly! You can now specify multiple endpoints, so if you have multiple services that you’d like to integrate with, go right ahead. You can also choose the events that you’d like each webhook to service (whoop!) … we’re still missing some documentation for certain endpoints. If you use https://api.tito.io, you’ll also find a handy “Test Webhook” button on tickets and registrations. We’re so close to being the most awesome ever.
  • Also: the above update came with fledgling (tweet tweet!) Slack support. zOMG! Just add a Slack incoming webhook URL to one of your endpoints, and select the registration.finished event, and any time someone registers for your event, you’ll get a message in the Slack room of your choice. The future is now!

Schrödinger’s Cat Edition


  • We’ve changed the default URL for passing a discount code through to an event page. Where once it was of the format https://ti.to/ultimateconf/2013/?discount_code=RANDYSAVAGE, we now also support: https://ti.to/ultimateconf/2013/discount/RANDYSAVAGE It’s the cream of the crop.
  • Fixed a bug that rendered the navigation bar useless if you changed the URL of an event while setting it up. Bugs like this are embarrassing.
  • Fixed a bug that incorrectly showed a cancelled ticket as “Unissued” on the customer screen.
  • If a customer started an order and then clicked on “X” to cancel the order, they would be presented with the confusing options: “Cancel” or “Ok”. Now, the technical minded of us know that this is a standard JS alert dialogue and that pressing “Ok” means “Yes, cancel”, and pressing “Cancel” means “Cancel cancelling”. But of course not all of us should be expected to know that, and now the labels that appear are “No” and “Yes, cancel this order”. Small fix, much better.
  • Getting all existential again, if we had a feature that allowed customers to add upgrades to their ticket, those upgrades would now appear on their public ticket page.
  • We recently implemented Selectize, a rather delightful library to improve the user experience of select boxes. If a credit card was declined during a transactionn and collecting a billing address was enabled, the country select would regress back to a regular old select. That is now no longer the case.
  • Our recent UI changes brought a “public” and “secret” toggle to show and hide a ticket. But when you toggled, the list on the left wouldn’t update, leading to a Schrödinger-style situation where at a glance a ticket could be both public AND secret at the same time. With this update, the list item stays in sync and if your ticket were a cat, there would be no doubt about its mortal situation.
  • Following on from Schrödinger’s cat, the same applies to editing a ticket, so that if you change the name or the price, the list will be updated inline. Welcome to the world of fake two-way data-binding.
  • New signups were not being added to Intercom until they returned to Tito, or refreshed the page. Since we want to provide the best support in the world, this wasn’t ideal. Intercom still doesn’t support Markdown anymore.
  • There were more updates, but they’re not quite done yet.

The March of post-new-UI fixes and updates continues (in April)


  • We had some favicon issues. It wasn’t personal, but the Rails asset pipeline really didn’t want anyone to see the favicons. We’ve done a deal with Fastly, the asset pipeline, and what seems like infinity different sizes of Apple Touch icons, and it seems like everyone is happy now.
  • Since we don’t have an officially announced API, we definitely didn’t add some missing attributes to the registrations and tickets endpoints, and we couldn’t possibly have added an endpoint for individual tickets.
  • Because the API doesn’t exist, there’s no possible rational way that we included refunds in the registrations endpoint, because there was no registrations endpoint in the first place.
  • Our API is the best of all possible Tito APIs, whether it exists or not.
  • The tracker item with this description If you void a ticket, and then choose to refund it, the refund form should be pre-selected to do a partial refund, and it should be the value of the ticket just refunded, and the confirm dialogue should _not_ ask to void the ticket that's just been voided. was fixed.
  • Our on-boarding was a little over-zealous when on-boarding people who had been invited to an existing account. No longer will they be asked to start from scratch.
  • Speaking of purely-metaphysical features, if we had a pay-by-invoice feature, the option to not include a PO number field would now be available.
  • A bug in Reports was double-reporting Tito fees since our upgrade to use Stripe’s application_fee feature. Stripe reports the application_fee as part of all of the fees in a payment, and we were reporting those fees as well as our own. This has now been fixed.
  • Some progress has been made on being able to customize the emails that Tito sends. Watch this space.

More additions to the epic April bugfix spree of 2015


  • Organizers can now update the billing address / company name of orders right from the Tito admin (this isn’t really a bug, but it bugged a lot of people, so we’re taking credit internally for it as a feature, but listing it here as a bugfix.)
  • A bug with the textarea autogrow plugin we use would cause textareas to grow to twice their expected height to comedic and clown-levels of annoyance. Fixed now.
  • Fixed some missing data in beta API, and added a ticket show endpoint. This is not the API you are looking for. It doesn’t exist yet.
  • User team Role no longer sees event revenue figures or reports
  • When processing a refund, instead of processing immediately when the Process button is hit, a confirmation step now appears, verifying how much to refund. We thought we did refunding well, but after some discussions with some customers, we have a lot of work to do on refunds. Panic and stress are the last things you want to feel when you are processing a refund. Apparently somebody once refunded 8 tickets by accident. We can do better. We will do better.

See you next time, folks!

Post new UI bug roundup round 2


  • decided to add a bit more personality to bug changelogs
  • because why not?
  • If you connected a payment option to your account and then created a ticket on an event, you’d get a silly message saying that you hadn’t connected a payment option, even though clearly you had. Now you get a nice hint to say that you need to hook it up.
  • For about a year, we’ve used the word “Survey” on one ticket edit screen and the phrase “Additional info” on another one. Nobody ever told us about this inconsistency until just recently. It has been rectified now.
  • The labels on the “Event Start Date” and “Event End Date” were ambiguous, leading to making users think. They have been disambiguated so users can think less.
  • Even though we’re based in Dublin, Ireland, Tito favours US-English as its development language, for many reasons, not least a host of US-based customers. Pending plans to introduce a British-English (rather) option, we have changed the word “organiser” to “organizer” (with an accent, but only when you say it) on our confirm page.
  • If you clicked on “Show question responses” on mobile, a dashboard would be shown, but there was no way to actually see the responses. We realise the irony of this, and apologise. It’s fixed now.
  • If you added someone manually, specified a price, and then tried to search for them, they did not appear. We modified the search to take account of this strange limbo state.
  • For the last 6 months, it’s been possible to optionally add a company name to an order. The same is now true of individual tickets. Now that we have a company name field on all of our top level objects, we are now enterprise ready.

Post new UI bug roundup


  • fixed a bug causing an error when team members were invited to an account
  • fixed a bug where textareas looked like text fields, causing confusion about use of enter vs shift-enter for submitting forms
  • fixed a bug where https://ti.to was being repeated in URLs
  • fixed a visual bug where cancelled tickets were not being displayed as cancelled correctly
  • Added and removed date-pickers. Tito never had date-pickers because date pickers suck. Date pickers still suck. We will rectify this.
  • tidied event deletion UI a bit
  • clarified the button to access an invoice from “Download invoice” to “Download refund receipt”
  • fixed inconsistencies between confirm dialogues when creating and editing tickets
  • fixed an issue where discount codes weren’t being validated when using tito-button
  • fixed an issue where links using the beta Terms & Conditions feature weren’t opening properly

Event organizer admin updates


  • admin is now more responsive (mobile-friendly AND feels snappier)
  • modernised visual look and feel
  • step-by-step setup
  • introduced account section
  • introduced home page listing all and recent events
  • added support for teams
  • added support for ticket descriptions
  • added ability to pause and resume ticket sales
  • added activity histories
  • fixed bug where page title wasn’t updating correctly
  • added confirmation dialogues
  • Added dashboard quick links
  • Added dashboard ticket filter
  • redesigned order show screen
  • redesigned ticket show screen
  • added ability to export as Excel
  • added advanced export options to allow choice of encoding types

PayPal Integration Updates


We’ve updated our PayPal integration to use the official PayPal SDK, which should result in an increase in reliability for Connecting PayPal (which has plagued us with super high error rates), and a general increase in reliability for PayPal transactions in general.

We also fixed a bug that was causing our processing status indicator to hang for PayPal transactions.

JavaScript callbacks for the Tito Widget


You can now write code that listens for events like registration:started, or registration:complete as they happen when you use the Tito widget, allowing you to change content on your site in response to activity in the Tito widget, or capture events for analytics etc. Read more on the Tito Widget Docs Page

Organizer registration notifications


Following a suggestion from one of our customers, Stephan Boönneman, the email notification that event organizers receive for ticket registrations now includes the ticket name.

Old

From: UltimateConf 2014
Subject: John Wayne just registered 1 ticket

New

From: UltimateConf 2014
Subject: 1 x Early Bird registered by John Wayne

Since multiple ticket purchases have the potential to make the subject length unwieldy, we roll them up for more than three.