Send a chat message
Sends a message to a chat session and returns the agent’s reply. Set stream to true to receive the reply as a server-sent event stream; otherwise the complete reply is returned in a single response.
Authorizations
Flowyte secret API key (Authorization: Bearer flowyte_sk_live_…). Scope-gated; is scoped to your organization — a key can never reach another tenant. The listed scopes in each operation's apiKey requirement are the scopes that key must hold. The tokenUrl is nominal: keys are minted in the dashboard.
Path Parameters
The chat session id (from createChatSession).
Body
The visitor's message text.
true → stream the reply as SSE frames; false → return the reply message(s) as JSON.
Which door the conversation came in through — a small, per-session bag of hints about the ingress, exposed to the agent in its own entry namespace ({entry.page_path}, {entry.label}, …). The doors: a call or text carries the dialed/texted number's operator-typed label from updateNumber ({"source":"did","label":"Denver line"}) — the agent is given the LABEL, never the digits. A web chat carries the embedding page's hints ({"source":"widget","page_path":"/pricing","market":"denver"}), where page_path is captured by the loader with no configuration and the rest come from the embed's optional data-context attribute. Entry context is an UNTRUSTED HINT, and the platform treats it as one. A visitor controls the page that supplies the chat values and a caller can dial the wrong line, so it can never be an assertion about who someone is: it is kept out of the identity bucket, it never satisfies a skill's parameter_bindings, and it LOSES to a value the conversation actually collected under the same name. The intended use is to pre-seed a question the agent still asks — offer "Denver" as the service area and confirm it, rather than asking cold. source is set by the platform (did | widget) and is ignored if you send it. Browser-supplied bags are restricted to the allowlisted keys below; other keys, non-string values, values over 200 characters, more than 8 keys, and a raw data-context over 1KB are dropped silently rather than erroring.