Webflow Forms

When someone submits a Webflow form, StarAgent replies once. Phone is preferred. If the form includes a phone number we text it. Otherwise we email using the same agent email template as other customer emails.

Plan requirements

  • Form webhooks work on the free Starter Site plan and on paid Site plans. Webhooks are not a paid-only feature.
  • Free Starter sites are limited to 50 lifetime form submissions. That limit does not reset. Paid Site plans have unlimited submissions.
  • Custom domains need a paid Site plan. Staging on .webflow.io works on free, subject to the 50-submission cap.
  • Publish the site after you add the webhook or nothing will fire.

Webflow docs: How to add forms · Form submissions · Working with webhooks.

Setup

  1. In StarAgent Setup, turn on Webflow Forms and copy the webhook URL.
  2. In Webflow, add a Webhook destination on your form and paste the StarAgent URL. Follow Webflow's form docs under Send submissions to a Webhook.
  3. Publish the site.
  4. Submit a test entry. StarAgent looks for phone and email fields by common names such as Phone, Phone Number, email, and Email.

You can also add a site-wide Form Submission webhook in Site settings. That fires for every form on the site.

Getting form spam? Turn on Spam Control in Setup. StarAgent classifies each submission using your Business facts and silences junk before any reply or review.

POST https://staragent.io/api/webflow/forms?token=<webflowInboundToken>

How replies work

  • If a phone number is present, StarAgent texts it (BlueBubbles when connected, otherwise Twilio SMS). No email is sent.
  • If there is no phone but there is an email, StarAgent sends one email using your Email to Customer settings.
  • Text replies use your Text to Customer mode and template. Email replies use your Email to Customer mode and template.
  • Reply delay in Setup applies to both channels, with about ±10% wiggle.
  • When Response Review is on, drafts go to your reviewers instead of sending right away.

Example payload

Webflow posts JSON like this. Field keys come from each input's Name in the Designer, not the visible label.

{
  "triggerType": "form_submission",
  "payload": {
    "name": "Contact Us",
    "siteId": "65427cf400e02b306eaa049c",
    "data": {
      "First Name": "Zaphod",
      "email": "zaphod@heartofgold.ai",
      "Phone Number": 15550000000
    },
    "submittedAt": "2022-09-14T12:35:16.117Z",
    "id": "6321ca84df3949bfc6752327",
    "formId": "65429eadebe8a9f3a30f62d0"
  }
}

Limits

  • One outbound channel per submission. Phone wins over email.
  • Duplicate submissions with the same Webflow id are ignored.
  • Free Starter sites stop collecting after 50 lifetime submissions until you upgrade the Site plan.
  • If the form Action field points at a custom URL, Webflow bypasses its native handler and this webhook will not fire. Use Send to Webhook instead.

Related: Yelp Leads · PostHog.