Download OpenAPI specification:
Beta. Security, tenancy, idempotency, and delivery guarantees are production quality; the contract may evolve before Stable. Customers provide attribution and data, never implicit delivery instructions.
Returns the authenticated workspace identity needed by integration adapters. A valid current tenant API credential is sufficient; no unrelated resource or webhook ability is required.
{- "data": {
- "workspace_id": "string",
- "workspace_name": "string",
- "environment": "string",
- "credential_abilities": [
- "string"
], - "capabilities": {
- "external_email_sending": true,
- "external_sms_sending": true
}
}
}| Idempotency-Key required | string [ 1 .. 255 ] characters |
| name required | string or null [ 1 .. 255 ] characters |
| first_name | string or null [ 1 .. 255 ] characters |
| last_name | string or null [ 1 .. 255 ] characters |
string or null <email> [ 1 .. 255 ] characters | |
| phone | string or null non-empty |
{- "phone": "string",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "phone": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "external_references": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "string",
- "external_id": "string"
}
]
}
}Atomically matches, creates, or updates one Customer. Supply source + external_id together for durable synchronization and optional source_updated_at protection, or omit all three and supply an exact email or phone for unlinked one-off intake. This operation never creates Review Requests, Custom Form requests, message intents, email, or SMS.
| Idempotency-Key required | string <uuid> |
| name required | string or null [ 1 .. 255 ] characters Full name. When a corresponding explicit first_name or last_name is omitted, FSRevs derives that missing component from this value. |
| source required | string or null [ 1 .. 80 ] characters A durable source namespace supplied by the caller. FSRevs trims it, transliterates it with the application's standard ASCII helper, lowercases it, and collapses punctuation and whitespace to hyphens. The response returns the canonical value. Supply together with external_id, or omit both for one-off intake. |
| external_id required | string or null [ 1 .. 191 ] characters Trimmed but otherwise opaque, case-preserving, and case-sensitive. Supply together with source, or omit both for one-off intake. |
| first_name | string or null <= 255 characters Explicit first name. Takes precedence over the first name derived from name. |
| last_name | string or null <= 255 characters Explicit last name. Takes precedence over the last name derived from name. |
string or null <email> <= 255 characters | |
| phone | string or null |
| source_updated_at | string or null <date-time> Available only with source + external_id. A strictly older timezone-qualified RFC 3339 value is ignored successfully; equal or absent values process normally. |
{- "source": "string",
- "external_id": "string",
- "source_updated_at": "2019-08-24T14:15:22Z",
- "email": "user@example.com",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "phone": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "phone": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "external_references": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "string",
- "external_id": "string"
}
]
}, - "result": "created",
- "source": "string",
- "external_id": "string"
}Read-only body-based lookup. Identity values are never accepted in URL paths or query strings. Name is never a deterministic identity.
{- "type": "contact_identity",
- "email": "john@example.com",
- "phone": "+18085551212"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "phone": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "external_references": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "string",
- "external_id": "string"
}
]
}
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "phone": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "external_references": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "string",
- "external_id": "string"
}
]
}
}| customer_id required | string <uuid> |
| Idempotency-Key required | string [ 1 .. 255 ] characters |
| name | string or null <= 255 characters |
| first_name | string or null <= 255 characters |
| last_name | string or null <= 255 characters |
string or null <email> <= 255 characters | |
| phone | string or null |
{- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "phone": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "phone": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "external_references": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "string",
- "external_id": "string"
}
]
}
}| customer_id required | string <uuid> |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "source": "string",
- "external_id": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}| customer_id required | string <uuid> |
| Idempotency-Key required | string [ 1 .. 255 ] characters |
| source required | string [ 1 .. 80 ] characters FSRevs canonicalizes this source using the same deterministic rule as customer synchronization. The response returns the canonical source. |
| external_id required | string <= 191 characters Trimmed but otherwise opaque, case-preserving, and case-sensitive. |
{- "source": "string",
- "external_id": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "source": "string",
- "external_id": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
}Deletes only the explicitly identified external-reference link and preserves the Customer. Repeating the same deletion is safe. Disable the calling automation before unlinking and ensure a later synchronization can uniquely match email or phone before expecting relinking. Bulk clearing is intentionally unavailable.
| customer_id required | string <uuid> |
| external_reference_id required | string <uuid> |
{- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "validation_failed",
- "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}Sends only to explicitly supplied destinations. Email and SMS channels are derived from the supplied email and phone; stored Customer contacts are never substituted.
| Idempotency-Key required | string [ 1 .. 255 ] characters |
| location_id required | string <uuid> |
| review_flow_id required | string <uuid> |
| customer_id | string or null <uuid> |
| name | string or null <= 255 characters |
| email required | string or null <email> <= 255 characters |
| phone | string or null |
| channels | Array of strings (ExplicitSendChannels) [ 1 .. 2 ] items unique Items Enum: "email" "sms" Deprecated V1 compatibility input. The server derives channels from nonblank explicit email and phone destinations. |
| sender_id | string or null <uuid> |
| employee_id | string or null <uuid> |
{- "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795",
- "review_flow_id": "d4943273-8f94-4073-8400-2d38a1a7fb2b",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "channels": [
- "email"
], - "sender_id": "3194e023-c19f-4a42-9172-9e18d68e3a3a",
- "employee_id": "df4fd699-0854-488d-9cc2-15e751a80ee3"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795",
- "review_flow_id": "d4943273-8f94-4073-8400-2d38a1a7fb2b",
- "creator_user_id": "7cd45191-9c6d-4e03-9d6c-fdf3d3c08277",
- "sender_user_id": "657a53c6-cc30-4506-95a7-bf108e2098a1",
- "employee_user_id": "eb5e2081-3889-49e3-bc18-833472df6511",
- "recipient": {
- "name": "string",
- "email": "user@example.com",
- "phone": "string"
}, - "delivery": {
- "channels": [
- "email"
], - "destinations": {
- "email": "string",
- "sms": "string"
}
}, - "origin": "system",
- "is_complete": true,
- "rating": 100,
- "rating_scale": 100,
- "sentiment_widget": "none",
- "feedback": "string",
- "feedback_present": true,
- "has_review": true,
- "created_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}, - "customer_resolution": {
- "result": "selected",
- "enriched_fields": [
- "name"
]
}
}| review_request_id required | string <uuid> |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795",
- "review_flow_id": "d4943273-8f94-4073-8400-2d38a1a7fb2b",
- "creator_user_id": "7cd45191-9c6d-4e03-9d6c-fdf3d3c08277",
- "sender_user_id": "657a53c6-cc30-4506-95a7-bf108e2098a1",
- "employee_user_id": "eb5e2081-3889-49e3-bc18-833472df6511",
- "recipient": {
- "name": "string",
- "email": "user@example.com",
- "phone": "string"
}, - "delivery": {
- "channels": [
- "email"
], - "destinations": {
- "email": "string",
- "sms": "string"
}
}, - "origin": "system",
- "is_complete": true,
- "rating": 100,
- "rating_scale": 100,
- "sentiment_widget": "none",
- "feedback": "string",
- "feedback_present": true,
- "has_review": true,
- "created_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z"
}
}Sends only to explicitly supplied destinations. Email and SMS channels are derived from the supplied email and phone; stored Customer contacts are never substituted.
| Idempotency-Key required | string [ 1 .. 255 ] characters |
| custom_form_id required | string <uuid> |
| location_id | string or null <uuid> |
| customer_id | string or null <uuid> |
| name | string or null <= 255 characters |
| email required | string or null <email> <= 255 characters |
| phone | string or null |
| channels | Array of strings (ExplicitSendChannels) [ 1 .. 2 ] items unique Items Enum: "email" "sms" Deprecated V1 compatibility input. The server derives channels from nonblank explicit email and phone destinations. |
| sender_id | string or null <uuid> |
| employee_id | string or null <uuid> |
{- "custom_form_id": "519db30f-7ece-484c-b3ff-f3605a8c37cf",
- "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "channels": [
- "email"
], - "sender_id": "3194e023-c19f-4a42-9172-9e18d68e3a3a",
- "employee_id": "df4fd699-0854-488d-9cc2-15e751a80ee3"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "custom_form_id": "519db30f-7ece-484c-b3ff-f3605a8c37cf",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795",
- "creator_user_id": "7cd45191-9c6d-4e03-9d6c-fdf3d3c08277",
- "sender_user_id": "657a53c6-cc30-4506-95a7-bf108e2098a1",
- "employee_user_id": "eb5e2081-3889-49e3-bc18-833472df6511",
- "recipient": {
- "name": "string",
- "email": "user@example.com",
- "phone": "string"
}, - "delivery": {
- "channels": [
- "email"
], - "destinations": {
- "email": "string",
- "sms": "string"
}
}, - "origin": "system",
- "is_complete": true,
- "completed_at": "2019-08-24T14:15:22Z",
- "answers": { },
- "created_at": "2019-08-24T14:15:22Z"
}, - "customer_resolution": {
- "result": "selected",
- "enriched_fields": [
- "name"
]
}
}Returns authorized dynamic answer data. Attachments are excluded.
| custom_form_request_id required | string <uuid> |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "custom_form_id": "519db30f-7ece-484c-b3ff-f3605a8c37cf",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795",
- "creator_user_id": "7cd45191-9c6d-4e03-9d6c-fdf3d3c08277",
- "sender_user_id": "657a53c6-cc30-4506-95a7-bf108e2098a1",
- "employee_user_id": "eb5e2081-3889-49e3-bc18-833472df6511",
- "recipient": {
- "name": "string",
- "email": "user@example.com",
- "phone": "string"
}, - "delivery": {
- "channels": [
- "email"
], - "destinations": {
- "email": "string",
- "sms": "string"
}
}, - "origin": "system",
- "is_complete": true,
- "completed_at": "2019-08-24T14:15:22Z",
- "answers": { },
- "created_at": "2019-08-24T14:15:22Z"
}
}| search | string <= 100 characters Case-insensitive resource name or Location label search. |
| limit | integer [ 1 .. 50 ] Default: 50 Maximum options returned. Results are always bounded and never preloaded without a limit. |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
]
}| location_id required | string <uuid> |
| search | string <= 100 characters Case-insensitive resource name or Location label search. |
| limit | integer [ 1 .. 50 ] Default: 50 Maximum options returned. Results are always bounded and never preloaded without a limit. |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795"
}
]
}| location_id | string <uuid> |
| search | string <= 100 characters Case-insensitive resource name or Location label search. |
| limit | integer [ 1 .. 50 ] Default: 50 Maximum options returned. Results are always bounded and never preloaded without a limit. |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795"
}
]
}| review_flow_id required | string <uuid> |
| location_id required | string <uuid> |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
]
}{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "event_types": [
- "custom_form.completed"
], - "include_sensitive_details": true,
- "included_custom_form_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "included_review_flow_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "active",
- "created_at": "2019-08-24T14:15:22Z",
- "disabled_at": "2019-08-24T14:15:22Z"
}
]
}Requires an Idempotency-Key. A valid replay of the same logical operation returns the same subscription ID and original signing secret while the encrypted idempotency snapshot exists, after current authorization is rechecked. The secret is never available from GET or LIST.
| Idempotency-Key required | string [ 1 .. 255 ] characters |
| name required | string [ 1 .. 100 ] characters |
| endpoint_url required | string <uri> <= 2048 characters ^https://[^/@:]+(?:\.[^/@:]+)+(?:/|$) Public DNS hostname over HTTPS with port omitted or 443. IP literals, userinfo, fragments, redirects, internal hosts, and any hostname resolving partly or wholly to a non-public address are rejected. |
| event_types required | Array of strings (PublicEventType) non-empty unique Items Enum: "custom_form.completed" "customer.created" "customer.updated" "review_request.sent" "review_response.completed" "review_feedback.recorded" "review_destination.visited" |
| include_sensitive_details | boolean Default: false Opt in to immutable sensitive detail snapshots only for event types whose catalog contract supports them. Files and download URLs are never included. Native adapters use lean delivery plus authenticated hydration. |
| included_custom_form_ids | Array of strings or null <uuid> [ 1 .. 100 ] items [ items <uuid > ] Optional explicit Custom Form include-list for custom_form.completed. Null or omitted means all current and future Custom Forms. An empty list is invalid. The server canonicalizes, deduplicates, and sorts the list before idempotency fingerprinting. |
| included_review_flow_ids | Array of strings or null <uuid> [ 1 .. 100 ] items [ items <uuid > ] Optional explicit Review Flow include-list shared by review_request.sent, review_response.completed, review_feedback.recorded, and review_destination.visited. Null or omitted means all current and future Review Flows. An empty list is invalid. The server canonicalizes, deduplicates, and sorts the list before idempotency fingerprinting. |
{- "name": "string",
- "event_types": [
- "custom_form.completed"
], - "include_sensitive_details": false,
- "included_custom_form_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "included_review_flow_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "event_types": [
- "custom_form.completed"
], - "include_sensitive_details": true,
- "included_custom_form_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "included_review_flow_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "active",
- "created_at": "2019-08-24T14:15:22Z",
- "disabled_at": "2019-08-24T14:15:22Z"
}, - "signing_secret": "string"
}| subscription_id required | string <uuid> |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "event_types": [
- "custom_form.completed"
], - "include_sensitive_details": true,
- "included_custom_form_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "included_review_flow_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "active",
- "created_at": "2019-08-24T14:15:22Z",
- "disabled_at": "2019-08-24T14:15:22Z"
}
}Disables the authenticated User's subscription. A repeated request, an already-pruned subscription, or an identifier that is not owned by the authenticated User returns the same 204 response without exposing whether another User owns that identifier.
| subscription_id required | string <uuid> |
{- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "validation_failed",
- "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}Returns a bounded tenant-local list using the same coarse configuration eligibility as webhook subscription creation. Labels include safe Location context to disambiguate duplicate names. This operation does not authorize any event occurrence.
| search | string <= 100 characters Case-insensitive resource name or Location label search. |
| limit | integer [ 1 .. 50 ] Default: 50 Maximum options returned. Results are always bounded and never preloaded without a limit. |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
]
}Returns a bounded tenant-local list across eligible Locations using the same coarse configuration eligibility as webhook subscription creation. Labels include safe Location context to disambiguate duplicate names. This operation does not authorize any event occurrence.
| search | string <= 100 characters Case-insensitive resource name or Location label search. |
| limit | integer [ 1 .. 50 ] Default: 50 Maximum options returned. Results are always bounded and never preloaded without a limit. |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
]
}Returns at most ten retained real business occurrences for adapter setup. It is not a polling feed. webhook.test is synthetic-only and is rejected here.
| event_type required | string (PublicEventType) Enum: "custom_form.completed" "customer.created" "customer.updated" "review_request.sent" "review_response.completed" "review_feedback.recorded" "review_destination.visited" |
| included_custom_form_ids | Array of strings or null <uuid> [ 1 .. 100 ] items [ items <uuid > ] Optional explicit Custom Form include-list. Null or omitted means all current and future Custom Forms. The server canonicalizes, deduplicates, and sorts the list. |
| included_review_flow_ids | Array of strings or null <uuid> [ 1 .. 100 ] items [ items <uuid > ] Optional explicit Review Flow include-list. Null or omitted means all current and future Review Flows. The server canonicalizes, deduplicates, and sorts the list. |
| limit | integer [ 1 .. 10 ] Default: 3 |
{- "event_type": "custom_form.completed",
- "included_custom_form_ids": [
- "10000000-0000-4000-8000-000000000002"
], - "limit": 3
}{- "data": [
- {
- "id": "10000000-0000-4000-8000-000000000000",
- "tenant_id": "example",
- "type": "custom_form.completed",
- "schema_version": 1,
- "details_included": false,
- "details_prepared_at": null,
- "occurred_at": "2026-08-20T12:00:00+00:00",
- "data": {
- "custom_form_request_id": "10000000-0000-4000-8000-000000000001",
- "custom_form_id": "10000000-0000-4000-8000-000000000002",
- "customer_id": "10000000-0000-4000-8000-000000000003",
- "location_id": "10000000-0000-4000-8000-000000000004",
- "creator_user_id": null,
- "sender_user_id": null,
- "employee_user_id": null,
- "completed_at": "2026-08-20T12:00:00+00:00"
}
}
]
}Platform-neutral adapter endpoint for webhook runtimes that cannot expose the exact original request bytes. The normal bearer credential must be the subscription's current creating credential. FSRevs locates the retained occurrence, delivery, and attempt; reconstructs the exact delivery payload; verifies the existing timestamp-and-payload HMAC; rechecks current event, scope, user, credential, and resource authorization; and returns the canonical event with the current authorized resource. Parsed webhook data is never trusted as proof.
| subscription_id required | string <uuid> |
| event_id required | string <uuid> |
| timestamp required | integer [ 1 .. 4102444800 ] |
| signature required | string^v1=[a-f0-9]{64}$ |
{- "subscription_id": "aa11a4c2-a467-43db-b413-c4ab0f5cf627",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "timestamp": 1,
- "signature": "string"
}{- "data": {
- "event": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenant_id": "string",
- "type": "custom_form.completed",
- "schema_version": 1,
- "details_included": true,
- "details_prepared_at": "2019-08-24T14:15:22Z",
- "occurred_at": "2019-08-24T14:15:22Z",
- "data": {
- "custom_form_request_id": "c88f3208-74be-4068-ac0c-65e65b33b6ff",
- "custom_form_id": "519db30f-7ece-484c-b3ff-f3605a8c37cf",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795",
- "creator_user_id": "7cd45191-9c6d-4e03-9d6c-fdf3d3c08277",
- "sender_user_id": "657a53c6-cc30-4506-95a7-bf108e2098a1",
- "employee_user_id": "eb5e2081-3889-49e3-bc18-833472df6511",
- "completed_at": "2019-08-24T14:15:22Z",
- "details": {
- "recipient": {
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string"
}, - "customer": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string"
}, - "creator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "sender": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "employee": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "answers": { },
- "uploads": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "field_key": "string",
- "file_name": "string",
- "mime_type": "string",
- "size_bytes": 0
}
]
}
}
}, - "resource_type": "customer",
- "resource": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "phone": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "external_references": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "string",
- "external_id": "string"
}
]
}
}
}