You can now set whether your landing pages, widgets, and checkout show prices including tax (B2C) or excluding tax (B2B). Set a default for the whole event, and override it per landing page or widget when you need to.
You can now connect a Microsoft 365 account and have your event emails sent straight from your own Microsoft Exchange mailbox. Choose "Microsoft 365" as the delivery method on a custom email domain, and attendees will see messages arrive from your own authenticated address.
Deleted events are no longer listed under "Recent events" in the account switcher.
We recently introduced click-to-edit for some of the core templates in the simple and advanced editors. We've rolled that out now to all templates that have a main text attribute.
Buttons, links, and form fields now show a clear focus outline when navigating with a keyboard.
In the Customize editor, derived colours (like button and link contrast) now update live in the preview.
Images in confirmation emails now carry alt text, and footer and reference text now meet color contrast guidelines.
Messages sent from an invitation list now go only to that list's invitations, even when you edit the message before sending. This was a regression introduced after we shipped auto-saving drafts.
When you duplicate an event, tickets and registration pages that used the default auto-generated names now pick up the new event's title instead of keeping the old one.
Fixed a bug where attempting to delete a Stripe integration from your account could fail with an error.
Fixed the custom offer payment page, which had stopped loading after a breaking change in Stripe's API.
The invoice template now shows up in the Customize list and search results for events that have invoicing enabled.
A ticket's direct link now skips verification and opens the ticket when it has no email address.
Deleted ticket types no longer appear when filtering attendees, invitations, or allocations, and while sorting ticket types.
Progress bars on the account dashboard now show an empty bar for unlimited-capacity tickets with no attendees, instead of incorrectly showing them as full.
Generating new recovery codes now asks you to confirm, so you can't accidentally invalidate your existing codes.
Labels on the "Add promotion codes" form now better distinguish between creating one code or a batch of codes.
Make sure people are redirected to the completed order screen if the cart or checkout URL is loaded when the order is already complete.
If you log in with Google, your email address will be verified automatically.
Custom sending domains now use a dedicated MAIL FROM subdomain, for tighter SPF/DMARC alignment.
Custom domain activation requests sometimes failed to register, leaving the button stuck. They now go through as expected.
Browser tabs and bookmarks now show the event name, so it's easier to see what events you have open if you're working across a few.
Deleted messages no longer appear on order and ticket views.
Clearer labels and inline hint text throughout the custom fields form make it easier to set up registration form fields.
This has been sorely missing from the start, so we finally added a recent activity feed and a registrations-over-time graph to the event dashboard.
Press ⌘+K (or Ctrl+K) anywhere in the dashboard to search for and jump straight to any of your events or accounts. This one was expressly for Paul, but once you try it you won't want to go back!
You can now set fonts, border radius, and shadows right from the customizer, giving you tons more flexibility without needing to create a custom template.
Your order's Stripe invoice, PDF, and receipt links are now available as Liquid variables to use in your emails and pages.
A long time coming! The customizer preview now updates as you make changes, so you don't have to save and reload.
Resubmitting an invitation or ticket form with custom fields no longer errors, and cancelling or resuming a cart no longer fails when the cart cookie is missing.
Blank or unnamed columns in an imported CSV are now ignored so they don't break your import.
Stripe Checkout could double-count line items in some configurations. Totals now match the order exactly.
Bulk messages now go only to attendees matching your active filter, and exporting or emailing a list filtered by date range no longer fails.
You can now send messages straight from the Attendees list, just like you can from Invitations.
RSVP confirmation and decline emails now appear in the Messages section of the invitation show view.
Added a clickable field to templates to allow for quick editing.
Send a message to yourself first to check how it looks before sending it to attendees.
The customizer now starts in simple mode where you can preview and edit the main templates for just the flows relevant to your event setup. Advanced editing of all templates is a click away if you need it, and more nicely organised than before.
Accounts on paid plan can now hide the "Powered by Tito" badge from pages, emails, and widgets.
RSVP confirmation email templates now have a calendar_url variable for inserting an add-to-calendar link.
Invitees can now choose their ticket type during the invitation flow, when you enable it for an invitation list.
We tidied up the profile and security settings screens into modals.
The download buttons on Apple Wallet and Google Wallet passes now appear in your attendee's language.
The event Access page has a cleaner, redesigned layout, making it easier to create custom widgets and landing pages.
An invalid time zone reported by a browser falls back gracefully and no longer causes errors.
The email composer handles HTML and Markdown more reliably, and you can drop in a raw-HTML block for full control.
Ticket types that sell out through unfulfilled allocations now correctly show as sold out, instead of "spaces left".