Goodbye, Goal Codes

Goodbye, Goal Codes

Remember goal codes? Those eight-character IDs, like XCMK0YSW, that you had to create in your dashboard before you could track a conversion. We moved away from them in October 2023, when trackEvent arrived and the event name became the thing that matters.

Nearly three years later, it’s time to say goodbye properly. Our API was the last place still holding on to them, and now it works from event names: the same names you send from your site.

You had a heads-up

On 23rd August, we marked the API endpoints that use goal codes as deprecated and emailed everyone whose integration still called them. If you’ve already moved over, thank you. If you haven’t, everything you need is below.

Tracking code on your site

trackGoal keeps working. An old goal code is still recorded under its event name, and from today, any other value you pass to trackGoal is recorded as an event with that name instead of being dropped.

For anything new, use trackEvent with the name you want to see on your dashboard:

fathom.trackEvent('Purchase', {
  _value: 1999, // Value in cents
});

There’s nothing to create first. The event appears on your dashboard as soon as it arrives. See Creating and using events for more examples.

Your API integration

If you call our API, swap each goal code for the event name:

  • List events: List events returns every event name your site has tracked, sorted by name. Use name to identify each event. Some older events still show their goal code as id, so only use id to page through the list.
  • Set a currency: send the event name to Set event currency. It works before the event is tracked for the first time.
  • Remove a currency: send the event name to Delete event. It removes the currency you set and keeps the event’s data in your reports.
  • Report on an event: in aggregations, pass site_id and entity_name instead of a goal code in entity_id.
  • Rename an event: change the name you send from your site. The API can’t rename events any more.

The old endpoints that take a goal code (Get, Create, Update and Delete event) are no longer supported, so move off them now. Our Events API documentation lists each replacement.

Why say goodbye?

A goal code was a second name for something that already had one. Dropping it means one identifier everywhere, the name you choose in your code, and it clears the way for bigger things we’re building, like funnels and journeys.

Stuck on the move? Get in touch and we’ll help.

Oct 5, 2026

Back to changelog