Skip to content

Submit Website Flow Response

POST https://api.secure.quotivity.com/v1/website/flows/{flowId}/responses

Submits a visitor’s completed run of a published flow. The answer to the flow’s required email question identifies the visitor: Quotivity finds or creates the contact by that address, writes any other contact-synced answers to it, attaches the contact’s primary company, creates a deal in the account’s configured pipeline and stage with quotivity_flow_response_id set, saves the Flow Response, and then creates a quote with quote rules applied and posts the New Quote from Public Flow Response timeline event on the deal. The quote and event follow within a few seconds of the 201. Send an Idempotency-Key header (any unique string per attempt, reused on retries) so a retried request returns the original result instead of creating a second deal. Limited to 10 submissions per hour per flow, across all visitors. Requires the Enterprise Website add-on.

Name Type Required Description
flowId string Yes The flow id from the script tag’s data-flow attribute.
Name Type Required Description
Idempotency-Key string No Unique per submission attempt; reuse it when retrying after a timeout. Replays return the stored 201 for 24 hours.

Required, application/json: WebsiteFlowSubmission

Status Body Description
201 WebsiteFlowSubmissionResult The response was saved and the deal created
400 WebsiteFlowError Invalid or missing answers, including an email answer that is malformed or on a blocked public domain (VALIDATION)
401 WebsiteFlowError Missing or invalid website key (UNAUTHORIZED)
403 WebsiteFlowError The origin is not allowed (ORIGIN_NOT_ALLOWED), or the flow is not published or the account lacks the add-on (UNAVAILABLE)
404 WebsiteFlowError The flow does not exist or is not active (UNAVAILABLE)
429 WebsiteFlowError Rate limit exceeded (RATE_LIMITED); honour Retry-After
502 WebsiteFlowError HubSpot rejected the deal or the response could not be stored (SUBMIT_FAILED); nothing was left behind in HubSpot. Show the support email with reference.

Returned by the Website Flows operations for every non-success status. code tells the embedding page whether to retry or to show the account’s support email; reference is the id a visitor can quote to support.

Field Type Required Description
code UNAUTHORIZED | UNAVAILABLE | ORIGIN_NOT_ALLOWED | RATE_LIMITED | VALIDATION | SUBMIT_FAILED Yes —
message string Yes —
reference string No Short request id for support, present on 5xx responses.
retryAfterSeconds integer No Present with RATE_LIMITED; also sent as the Retry-After header.
Field Type Required Description
answers object Yes Question key to answer. Multi-select answers are arrays of option values; everything else is a string. The answer to the flow’s required email question (an email question synced to the contact’s email property) identifies the visitor: the contact is found by that address or created, other contact-synced answers are written to it, and its primary company is attached to the deal.
Field Type Required Description
responseId string Yes The Flow Response id, also written to the deal’s quotivity_flow_response_id.
dealId string Yes —