Skip to main content
This is the full catalog. For each event we document:
  • What triggers it in the FPT business model
  • The data payload shape — the event-specific bit inside the envelope
  • When you’d care about it
For the outer envelope shape (eventId, eventType, eventTimestamp, etc.) see the envelope reference.

Available today (v1.1)

The contact.* family — four focused events covering the contact lifecycle. Each one represents a distinct business signal so you can subscribe only to what your integration needs.

contact.created

A new contact was added at a location.

contact.status_changed

Contact moved between lifecycle groups (Lead → Member → etc.).

contact.sub_group_changed

Contact assigned to a different business sub-group.

contact.deleted

A contact was removed or deactivated.
Why no generic contact.updated? Fit Pro Tracker intentionally does not expose a catch-all “any field changed” event in v1.1. A staff member editing a contact often saves multiple times in quick succession (phone, then notes, then group), and a generic update event would flood your handler with 3-4 near-duplicate events per second. Instead, v1.1 ships focused events that match specific business signals. v1.2 will introduce additional focused events for identity changes (contact.identity_updated), address changes, and activity logging so partners can subscribe by intent rather than by every database write.

On the roadmap

These event families are designed and on the schedule but not yet emitted. You can pre-plan your integration around them, but subscribing today won’t deliver anything.
contact.identity_updated (firstName / lastName / email / phone changed), contact.address_updated (city / state / postal / country changed), contact.note_added, contact.tag_added, contact.tag_removed. Replace the catch-all “contact.updated” pattern with discrete, partner-friendly signals.
membership.started, membership.renewed, membership.cancelled, membership.frozen, membership.expired — emitted from the FPT billing lifecycle.
payment.succeeded, payment.failed, payment.refunded — emitted when transactions clear the payment gateway.
subscription.created, subscription.updated, subscription.cancelled — for recurring billing plans (distinct from membership lifecycle).
appointment.scheduled, appointment.rescheduled, appointment.completed, appointment.cancelled, appointment.no_show — 1-on-1 appointment lifecycle.
class.attended, class.cancelled, class.waitlisted — group class attendance.
message.sms_received, message.sms_failed, message.email_received, message.call_received — inbound communications from contacts.
Staff workflow and automation events.

Naming conventions

  • Resource.verb format — <entity>.<past_tense_action>
  • Lowercase, dot-separatedcontact.sub_group_changed, never ContactSubGroupChanged or contact-sub-group-changed
  • Past tense — events describe things that already happened. created, updated, deleted. Never creating or delete.
  • Stable — once we ship an event type, the string never changes. Adding new fields to its data payload is forward-compatible; removing fields requires a new event type.

Envelope shape (every event)

See Event envelope for the full field reference.