contact.created event fires when a brand-new contact record appears in FPT for the first time. This happens when:
- A staff member manually adds a contact in the FPT admin
- A lead-source integration (Meta/Facebook ads, ClubReady, MindBody import, etc.) creates a contact
- A self-service signup form (kiosk, public web form) submits
We only fire
contact.created for genuinely new contacts going forward. Contacts that existed before this event type was rolled out won’t retroactively fire created. If you need to seed your system with pre-existing contacts, use the FPT admin’s CSV export — webhooks are a forward-looking event stream, not a historical snapshot.Payload
Fields in data
The default payload carries the identity baseline so you can route + sync the contact without a separate API lookup. Additional PII categories (address, demographics, health, financial) flow through only if the subscription has opted into them — see PII categories.
Opt-in fields —
city, state, postalCode, countryCode (address), birthdate, gender, company (demographics), and membership/billing aggregates only appear when the subscription has the matching PII category checked in the FPT admin.Companion events
Right after a contact is created, you may see follow-up events for the same contactId within a few seconds:contact.status_changed— if the contact’s initial group differs from the location defaultcontact.sub_group_changed— if the contact was assigned to a sub-group on creation
contactId, so dedupe in your handler if you only care about “new contact appeared.”
What you might do with this
- Sync to your CRM — create a matching record in your system the moment a contact appears in FPT
- Welcome workflow — trigger an onboarding email or SMS via your marketing platform
- Analytics — count new leads / new members per location per day
- Lead routing — assign the contact to a sales rep in your queueing system