ROASFormDocs
WebhooksEvents

partial_lead

A lead left contact details, then abandoned the form before finishing.

Fires when an identified lead abandons the form. Use it for re-engagement flows and to see where your form loses people; submission.lastSeenElement is the question they stopped on. Requires Enable Partial Submissions to be turned on in the form's settings.

data

leadobject

The partially captured lead. Fields not yet answered are null. See shared objects.

submissionobject

The abandoned submission (status is partial, completedAtUtc and ending are null). Carries its own ending, answers, lastSeenElement, utmData, ipAddress, userAgent, and appliedTags. See the submission object.

reasonstring

What detected the abandon: browser_detection means the visitor's browser reported it (idle timer or tab close); server_detection means ROASForm's server-side check caught one the browser never reported.

Possible values
browser_detectionserver_detection
splitTestVariantnullable object

{ id, name } of the variant served, or null when the form has no running split test.

partial_lead
{
  "id": "5c9e2b74-1d8f-4a3c-b6e9-7f0a4d8c2b15",
  "event": "partial_lead",
  "webhookVersion": "2026-08-05",
  "createdAtUtc": "2026-07-28T14:31:05.338Z",
  "agency": {
    "id": "c1a2b3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
    "name": "Acme Marketing"
  },
  "subaccount": {
    "id": "7f3e9d21-4b8a-4c5e-9f60-2d8b1a7c3e54",
    "name": "Acme Fitness Client"
  },
  "form": {
    "id": "e8b4c672-9a1d-4f3b-b7c8-5d2e9f0a1b3c",
    "name": "Fitness Coaching Application",
    "url": "https://forms.roasform.com/fitness-coaching"
  },
  "data": {
    "lead": {
      "id": "3d9f7a25-6c1b-4e8d-a2f4-8b0c5d7e9f13",
      "name": "Jane Doe",
      "email": "jane@example.com",
      "phone": null,
      "company": null,
      "location": null,
      "tags": [],
      "timezone": "America/Chicago",
      "country": "US",
      "createdAtUtc": "2026-07-28T14:29:03.114Z"
    },
    "submission": {
      "id": "5a2c8e94-1f7d-4b3a-9e6c-4d8f0b2a6c71",
      "status": "partial",
      "qualification": "none",
      "score": 30,
      "startedAtUtc": "2026-07-28T14:26:40.207Z",
      "completedAtUtc": null,
      "ending": null,
      "lastSeenElement": {
        "elementId": "d2c8f5b1-7e4a-4d9c-a6f3-9b0e5d8c2a64",
        "label": "What are your goals?",
        "type": "multiple_choice",
        "value": null,
        "values": null,
        "score": null
      },
      "answers": [
        {
          "elementId": "b7e2f9a4-3c8d-4a1e-9f5b-6d0c2e8a4f17",
          "label": "What is your monthly budget?",
          "type": "single_choice",
          "value": "$2,000 - $5,000",
          "values": null,
          "score": 30
        },
        {
          "elementId": "a1d4c7f2-9b3e-4c6a-8d2f-5e9b1c4a7d30",
          "label": "What is your email?",
          "type": "email",
          "value": "jane@example.com",
          "values": null,
          "score": null
        }
      ],
      "appliedTags": [
        "abandoned"
      ],
      "utmData": {
        "utm_source": "facebook",
        "utm_medium": "cpc",
        "utm_campaign": "summer-2026"
      },
      "ipAddress": "203.0.113.42",
      "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15"
    },
    "reason": "browser_detection",
    "splitTestVariant": {
      "id": "d6f1a8c3-2e9b-4a5d-8f7c-1b4e6a9d3c82",
      "name": "Variant B"
    }
  }
}