---
title: "Receive Zapier webhook"
method: POST
path: "/api/integrations/webhooks/zapier/{endpoint}"
tags: ["Zapier Webhooks"]
---

# Receive Zapier webhook

`POST /api/integrations/webhooks/zapier/{endpoint}`

Receives webhook calls from Zapier for:
- Create Client
- Create Prospect
- Other events (activity.logged, workout.completed, etc.)

`{endpoint}` is a user-specific identifier provided during connection
setup.

The general envelope structure is:

```json
{
  "id": "evt_123456",
  "event": "client.created",
  "version": "v1",
  "created": "1762263854",
  "source": "zapier",
  "endpoint_id": "wh_3fa85f64",
  "is_testing": false,
  "data": { ... }
}
```

## Path parameters

- `endpoint` string, required

## Request body

- WebhookEnvelope — Generic envelope used for all Zapier webhook calls.
  - `id` string, required — Unique event ID.
  - `event` 'activity.logged' | 'checkin.submitted' | 'client.activated' | 'client.created' | 'client.deleted' | 'prospect.created' | 'workout.completed', required — Event type identifier.
  - `version` string, required
  - `created` string, required — Creation timestamp (e.g. epoch seconds as string).
  - `source` string, required
  - `endpoint_id` string, required
  - `is_testing` boolean
  - `data` union, required — Event-specific payload.
    - CreateClientData — Payload for creating a client in 1FIT.
      - `team_member_id` string
      - `first_name` string, required
      - `last_name` string, required
      - `email` string, email, required
      - `mobile` string, required
      - `payment_amount` number
      - `payment_schedule` 'monthly' | 'annual'
      - `checkin_template_id` string
      - `checkin_frequency` 'weekly' | 'biweekly' | 'none', required
      - `checkin_days` integer[]
      - `notes` string
    - CreateProspectData — Payload for creating a prospect in 1FIT.
      - `first_name` string, required
      - `last_name` string, required
      - `email` string, email, required
      - `mobile` string
      - `value` number
      - `stage` 'added' | 'call_scheduled' | 'call_not_scheduled' | 'call_completed' | 'follow_up' | 'other'
      - `close_percentage` number
      - `notes` string
    - ActivityLoggedData — Payload when an activity is logged.
      - `first_name` string
      - `last_name` string
      - `email` string, email
      - `mobile` string
      - `activity` string
      - `duration` integer — Duration in seconds.
      - `distance` integer — Distance in meters.
      - `hr` integer — Average heart rate.
      - `calories` integer
      - `date` string, date-time
      - `logged_at` string, date-time
    - CheckinSubmittedData — Payload when a check-in is submitted.
      - `first_name` string
      - `last_name` string
      - `email` string, email
      - `mobile` string
      - `requested_at` string, date-time
      - `submitted_at` string, date-time
    - ClientLifecycleData — Payload for client lifecycle events (activated, created, deleted).
      - `first_name` string
      - `last_name` string
      - `email` string, email
      - `mobile` string
      - `payment_amount` number
      - `payment_schedule` 'monthly' | 'annual'
      - `checkin_frequency` 'weekly' | 'biweekly' | 'none'
      - `checkin_days` integer[]
      - `notes` string
      - `status` string
    - ProspectCreatedData — Payload when a new prospect is added.
      - `first_name` string
      - `last_name` string
      - `email` string, email
      - `mobile` string
      - `value` number
      - `stage` 'added' | 'call_scheduled' | 'call_not_scheduled' | 'call_completed' | 'follow_up' | 'other'
      - `close_percentage` number
      - `notes` string
    - WorkoutCompletedData — Payload when a workout is marked completed.
      - `first_name` string
      - `last_name` string
      - `email` string, email
      - `mobile` string
      - `workout` string
      - `rating` integer
      - `notes` string
      - `started_at` string, date-time
      - `completed_at` string, date-time
      - `duration` integer — Duration in seconds.
      - `exercises` object[]

## Response `200`

Webhook accepted

- WebhookSuccessResponse
  - `status` string
  - `message` string

## Other responses

- `400` — Bad Request — invalid payload
- `401` — Unauthorized — invalid or expired token
- `404` — Not Found — endpoint not found
- `500` — Internal Server Error

---

[API](https://skmtc.net/1fit/apis/1fit-zapier-webhook-api.md) · [All operations](https://skmtc.net/1fit/apis/1fit-zapier-webhook-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/1fit/1fit-zapier-webhook-api/versions/6cf04032faed/schema)
