Skip to main content
Keep the form you designed on your own site and send each application to Olympus from your server. Every application lands in Connect with all of its answers, and your automations run on it the same way they do for an Olympus form.

Before you start

  1. Build and publish the form in Build > Forms. Its id is the last part of the editor URL, /build/forms/<form id>.
  2. In Settings > API keys, create a key just for the website and set Access to Forms only. A Forms only key can send form submissions and nothing else. Revoking it later cuts off only the website.
  3. Save the key on your server as OLYMPUS_API_TOKEN.
Keep the key on the server. A Standard key can act as you in the workspace, which is why the website should get a Forms only key. Never put it in browser code, and never commit it. Browsers can’t send it to this endpoint anyway: Olympus doesn’t allow the header from web pages.

Get the field map

Map each input on your form to a question id. contact shows which questions fill the contact’s email, phone, and name in Connect. If you change the form and publish it again, fetch the map again.

Send an application

  • fields holds one answer per question id. Choice questions take an option value; checkboxes and multi-select take an array of values. This endpoint doesn’t take file uploads.
  • funnel_uid is optional. It credits the application to a funnel in the same workspace. The funnel id is the last part of its URL in Build > Funnels.
  • session_id is optional but makes retries safe. Make a new one per application. Sending the same one again returns the first result instead of saving a second application.
A saved application returns 200 with submission_id and qualification_outcome (qualified, needs_triage, or disqualified). Treat any other status as not saved.

Errors

What happens next

Each application creates or updates the contact in Connect, with the opportunity the form’s Connect settings call for. Then the form’s rules pick one automation trigger:
  • app_completed for a qualified application
  • needs_triage when the rules send it to review
  • disqualified when the rules rule it out
call_booked fires only when the lead books on an Olympus calendar, so send qualified leads to your Olympus booking page. Your team sets no_show from Connect. Don’t also create the opportunity yourself, for example with the olympus_connect_opportunities_create MCP tool. The submission already does it, and a second one duplicates the lead.