Skip to main content

Webhooks

Overview

Feed Item objects are created when significant events occur in your account, such as class registrations, customer signups, and payments. These Feed Items can be delivered to your integration through Webhooks.

Webhooks notify integrations about new Feed Item objects by sending an HTTP POST request to a Webhook Destination (a configured URL). The request payload includes one or more Feed Item objects.

This document outlines the general concepts of Feed Items and Webhooks.

Webhook Delivery

Webhooks are delivered as HTTP POST requests to the URL defined in the Webhook Destination.

Your server must respond with a 2xx status code (e.g., 200 OK or 204 No Content) within 10 seconds.
You may also respond with a 410 Gone status to indicate that no further Webhooks should be sent to this destination.

We attempt delivery up to 5 times at increasing intervals (see Webhook Retries).

Key Notes

  • Webhooks may be delivered out of order.
  • Deliveries will not follow redirects. Responses such as 301 or 302 will be treated as failed delivery attempts.

Headers

Each webhook POST request includes a TEAMUP-WEBHOOK-ID header containing a unique identifier for that webhook.
This ID remains the same across delivery attempts, making it useful for deduplication.

Webhook Retries

If your server does not respond with a 2xx or 410 status within 10 seconds, we retry delivery four more times at the following intervals:

  1. 1 minute
  2. 3 minutes
  3. 10 minutes
  4. 30 minutes

After the fifth attempt, no further delivery attempts are made.

Disabling a Webhook Destination

Responding with 410 Gone disables the Webhook Destination permanently. Once received, no further webhooks will be delivered to that destination.

Payload

The payload of a Webhook is a JSON object containing a list of Feed Item objects.

Currently, webhooks contain a single feed item, but in the future, multiple items may be included.

Sample payload:

{
"feed_items": [
{
"object": "feed_item",
"id": 13553027,
"timestamp": "2019-04-27T21:52.45",
"type": "event_registration.created",
"source": "standalone",
"resources": {
"customer": 818974,
"event": 14947247,
"business": 285151
}
}
]
}

Webhook Destinations

Webhook Destinations define where webhooks are sent.

Destinations can be configured to receive all or only specific Feed Item types that occur within a provider's account.

The Webhook Destination Object

AttributeDescription
objectAlways "webhook_destination".
idUnique identifier for the object.
urlThe URL to which webhooks are delivered.
feed_item_typesA list of Feed Item types to be notified about. The value * represents all types.
applicationThe Application that the destination is associated with.

Example:

{
"object": "webhook_destination",
"id": 53583,
"url": "https://example.com/receiver",
"feed_item_types": ["*"],
"application": 533
}

Feed Items

The Feed Item Object

AttributeDescription
objectAlways "feed_item".
idUnique identifier for the object.
timestampISO 8601 timestamp when the activity occurred.
typeThe type of Feed Item (see Feed Item Types).
sourceIdentifies a more specific trigger for event registration changes, such as enrolling from a waitlist or being removed due to a class cancellation.
resourcesObject containing references to related resources.

Example:

{
"object": "feed_item",
"id": 13553027,
"timestamp": "2019-04-27T21:52.45",
"type": "event_registration.created",
"source": "standalone",
"resources": {
"customer": 818974,
"event": 14947247,
"business": 285151
}
}

Feed Item Types

This section lists all Feed Item types.

course_session.ended

Created when a course session ends.

Resources:

  • course_session
  • business

customer.created

Created when a new customer is created.

Resources:

  • customer
  • business

customer.invited

Created when a customer is invited to join a business (in addition to customer.created).

Resources:

  • customer
  • business

customer.signed_up

Created when a customer completes the signup process.

Resources:

  • customer
  • business

customer.updated

Created when a customer’s details (name, email, field values, etc.) are updated.

Resources:

  • customer
  • business

customer.deleted

Created when a customer is deleted.

Resources:

  • customer
  • business

customer_membership.created

Created when a customer membership is added (via purchase or manually from the business dashboard).

Resources:

  • customer
  • business
  • customer_membership

customer_membership.started

Created when a membership becomes valid (for future start dates, this occurs on the start date).

Resources

  • customer
  • business
  • customer_membership

customer_membership.ended

Created when a customer membership ends. Applies only to recurring and prepaid plans.

Resources:

  • customer
  • business
  • customer_membership

customer_membership.cancelled

Created when a customer cancels a membership. Applies only to recurring plans.. This occurs when a user clicks Cancel in TeamUp.
Cancellation sets an expiration date, which will later trigger a customer_membership.ended Feed Item.

Resources:

  • customer
  • business
  • customer_membership

customer_membership.completed

Created when a pack membership has reached its usage limit.

Resources:

  • customer
  • customer_membership
  • business

customer_referral.created

Created when a customer signs up using a referral.

Resources:

  • customer
  • business
  • referrer

customer_referral.confirmed

Created when a referred customer completes the necessary steps to confirm the referral.

Resources:

  • customer
  • business
  • referrer

event.ended

Created when a class/appointment/rental ends.

Resources:

  • event
  • business

event_registration.created

Created when a customer registers for an event. Includes various sources indicating how the registration occurred.

Sources:

  • standalone: Not associated with any of the below.
    • Resources: event, customer, business
  • waitlist: Automatically from the waitlist.
    • Resources: event, customer, business
  • reservation: As part of a recurring reservation.
    • Resources: event, customer, reservation, business
  • block_booking: As part of a block booking.
    • Resources: event, customer, business

event_registration.removed

Created when a customer is removed from an event.

Sources:

  • standalone: Not associated with any of the below.
    • Resources: event, customer, business
  • event_cancelled: Automatically from the waitlist.
    • Resources: event, customer, business

event_registration.late_cancelled

Created when a customer late cancels from an event. The customer’s membership usage is not refunded.

Resources:

  • event
  • customer
  • business

event_registration.attended

Created when a customer is marked as attended.

Resources:

  • event
  • customer
  • business

event_registration.noshowed

Created when a customer is marked as a no-show.

Resources

  • event
  • customer
  • business

event_registration.waitlist.added

Created when a customer is added to the waitlist.

Resources:

  • event
  • customer
  • business

event_registration.waitlist.removed

Created when a customer is removed from the waitlist.

Resources:

  • event
  • customer
  • business

event_registration.waitlist.spot_reserved

Created when a customer’s waitlist spot is reserved.

Resources:

  • event
  • customer
  • business

event_registration.waitlist.spot_expired

Created when a customer’s waitlist spot expires.

Resources:

  • event
  • customer
  • business

event_registration.waitlist.spot_declined

Created when a customer declines a waitlist spot.
Source not used. Resources: event, customer, business.

lead_form.submitted

Created when a lead form is submitted.

Resources:

  • customer
  • business
  • lead_form