PUT /api/v1/sales-closers/{closerId}/meeting-link
Reads or replaces an eligible closer’s default meeting URL. Defaults are copied into new bookings; existing calls keep their own link.
| Role in the organization | This endpoint |
|---|---|
OWNER | Allowed with current organization permissions |
ADMIN | Allowed with current organization permissions |
MEMBER | Conditional on the business role and scope below |
| Requirement | Rule for this endpoint |
|---|---|
| Business role | Closer for their own default; no setter access |
| Resource scope | Organization bound to the API key |
| Participation | Target must be an eligible closer in this organization |
| Resource state | No additional state restriction |
| Parameter | Type | Required | Description |
|---|---|---|---|
closerId | UUID | yes | Closer user identifier |
| Header | Required | Description |
|---|---|---|
x-api-key | yes | Organization API key |
X-Correlation-Id | no | Correlation UUID for support |
Idempotency-Key | yes | Stable key for one intention |
Content-Type | yes | application/json |
| Field | Type | Required | Nullable | Description |
|---|---|---|---|---|
meetingUrl | string | yes | yes | HTTP or HTTPS URL, maximum 2048 characters, no credentials or whitespace |
Unknown fields, including organizationId, are refused. Send null to remove the default.
curl -X PUT "$COHORTE_API_BASE_URL/api/v1/sales-closers/11111111-1111-4111-8111-111111111111/meeting-link" \
-H "x-api-key: $COHORTE_API_KEY" \
-H "Idempotency-Key: call-details-001" \
-H "Content-Type: application/json" \
-d '{"meetingUrl":"https://meet.example.com/my-room"}'200: successful read, save or replay.400: invalid identifier, payload or missing idempotency key.401: invalid key or membership.403: insufficient permissions.429: rate limit reached.500: unexpected failure.| Field | Type | Nullable | Description |
|---|---|---|---|
success | boolean | no | Successful request |
data.closerId | UUID | no | Closer user identifier |
data.meetingUrl | string | yes | Default link, or null when unset |
{
"success": true,
"data": {
"closerId": "11111111-1111-4111-8111-111111111111",
"meetingUrl": null
}
}A mutation records an audit and change event. Reusing the same key does not apply the edit twice. The returned data reflects the current resource; replay does not resend email.
Changing or clearing the default affects future reservations only. No email is sent. When a call is reassigned, its saved link is replaced by the new closer’s default at that moment, or cleared if they have none.
An optional nullable contactEmail can be included alongside meetingUrl. Omit to preserve, send null to clear. It must be a valid email address. The professional address is used first; the closer’s account address is the explicit fallback. This never changes sign-in identity.