Leads

Set the rooms a lead asks for

Replaces the spaces (rooms) of the lead's venue the request asks for; [] clears them. They are carried to the event on conversion. No other field is accepted. Role permission: leads.manage.

patch/leads/{id}

Request

  • Base URL: https://joinways.app/api/v1
  • URL: https://joinways.app/api/v1/leads/{id}
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://joinways.app/oauth/authorize, token URL https://joinways.app/api/oauth/token, scopes: mcp.write)

Headers

Idempotency-Keystring

Optional client-generated key (1 to 255 characters, e.g. a UUID v4) that makes the request idempotent for 24 hours: a retry with the same key replays the recorded response (marked Idempotency-Replayed: true) instead of executing the operation again. Same key with another body: 422 idempotency_key_reuse; while the first request runs: 409 idempotency_conflict. See the Idempotency section.

Request body

requested_space_idsstring[] required

Response

The updated lead.

idstring uuid
status'pending' | 'validated' | 'rejected' | 'needs_info'

pending = to process, validated = accepted (it has an event), rejected = declined, needs_info = waiting for information from the client.

client_namestring nullable
client_emailstring nullable
client_phonestring nullable
companystring nullable
event_typestring nullable
venue_namestring nullable

Venue named in the request.

venue_citystring nullable
location_idstring uuid nullable

The workspace venue the request is for.

date_eventstring date nullable
date_event_endstring date nullable
start_timestring nullable
end_timestring nullable
participants_mininteger nullable
participants_maxinteger nullable
participants_fixedinteger nullable
budget_estimatednumber nullable
budget_flexibleboolean nullable
sourcestring nullable

Origin label (a platform name, api, zapier…).

source_type'email' | 'instagram' | 'whatsapp' | 'form' | 'linkedin' | 'facebook' | 'website' | 'referral' | 'manual' | 'aircall'
platform_linkstring nullable

Link of the request on the booking platform.

inquiry_keystring nullable

Identity of the request (<platform>:<inquiry id> or <platform>:link:<canonical link>). Same key = same request (siblings across venues).

ai_scorenumber nullable
is_readboolean
is_platformboolean
is_lockedboolean

Locked by the Free plan monthly allowance (content sealed).

archived_atstring date-time nullable

Deleted (soft) or merged into another lead.

event_idstring uuid nullable

Event the request is on (converted or linked).

requested_space_idsstring[]

Spaces (rooms) of location_id the request asks for.

created_atstring date-time nullable
updated_atstring date-time nullable
validated_atstring date-time nullable
rejected_atstring date-time nullable
rejection_reason'date_unavailable' | 'capacity' | 'budget' | 'not_a_fit' | 'other'

Why the venue declined the request (optional). Only set on a rejected lead; cleared as soon as the status changes.

info_requested_atstring date-time nullable
client_replied_atstring date-time nullable
account_idstring uuid
venue_typestring nullable
flexibleboolean nullable
subjectstring nullable
ai_summarystring nullable
requirementsstring[] nullable
budget_notestring nullable
technical_needsstring[] nullable
service_needsstring[] nullable
event_schedulestring nullable
ambiancestring nullable

Example response

{
  "status": "pending",
  "client_name": "Jane Doe",
  "company": "Acme",
  "event_type": "seminar",
  "start_time": "19:00",
  "inquiry_key": "kactus:184522",
  "rejection_reason": "date_unavailable"
}

Changes

No recorded changes to this operation across all 1 revision of this API.