---
title: "Service Autopilot"
url: https://docs.light-ai.app/integrations/service-autopilot.md
canonical_url: https://docs.light-ai.app/integrations/service-autopilot
last_updated: 2026-10-13
summary: "Service Autopilot has no open API. Push leads in through one of its own lead-capture web forms, which creates or updates the account; e-mail the office as a fallback."
api_status: beta
related:
  - https://docs.light-ai.app/integrations
  - https://docs.light-ai.app/inbound
  - https://docs.light-ai.app/webhooks
  - https://docs.light-ai.app/external-refs
---

# Service Autopilot

> Service Autopilot has no open API. Push leads in through one of its own lead-capture web forms, which creates or updates the account; e-mail the office as a fallback.

| Direction | Path | How |
| --- | --- | --- |
| Leads → Light AI | **E-mail** · **via n8n** | Only for requests that arrive through Service Autopilot forms: each submission can send an e-mail (Classic forms: Send Internal Email to any address; V3 forms: an Email Notification to an employee or role). Send it to an inbox an n8n e-mail trigger reads → parse the fields you put in the e-mail body → `POST /v1/leads` with `source: service_autopilot`. |
| Light AI → Service Autopilot | **Their web form** · **via n8n** | On `lead.created` (and/or `quote.approved`), n8n submits the contractor's Service Autopilot lead form with the mapped fields; Service Autopilot creates or updates the account. If the submission fails, n8n e-mails the office instead. |

## Build the form (New SA Forms, V3)

1. Marketing → Forms → new form for Light AI only (keep it separate from the website form).
2. Add first name, last name, e-mail, phone and address fields and set each **Field Mapping** to the Service Autopilot account field. Add a Long Text field ("Light AI details") and a Hidden field ("Light AI") for the source, mapped to custom fields if you have them.
3. Configure → Account Management: **Automatically Manage Accounts** on (otherwise every response waits in Form Responses for someone to approve it); Account Matching **Email address matches**.
4. Leave **CAPTCHA** off on this form: CAPTCHA blocks automated submissions and hides the Source Code option.
5. Publish → Website → **Source Code**. The form's `action` URL and each input's `name` are what n8n posts.

## Submit from n8n

1. Light AI webhook node → verify the signature → Code node that builds the fields below.
2. HTTP Request node: POST to the form's `action`, body `application/x-www-form-urlencoded`, one parameter per input `name` from the source code.
3. Check the response and the account in Service Autopilot once. On an error, branch to an e-mail node that sends the same fields to the office.
4. Classic (V2) forms: set **Create on Submit** to Create Lead (Name and Address must be mapped), **Source on Submit** to your Light AI source, and leave Show Captcha off. V2 responses wait on the Pending tab until someone clicks **Create**, so prefer a V3 form with automatic account management.

## Light AI → Service Autopilot form

| Form field (mapped to) | Light AI |
| --- | --- |
| First name, last name | `contact.first_name`, `contact.last_name` (or `client.*` on quotes) |
| E-mail, phone | `contact.email`, `contact.phone` |
| Address, city, state, ZIP | `address.line1` (+ `line2`), `address.city`, `address.region`, `address.postal_code` |
| Hidden field / Source on Submit | `"Light AI"` and `source_detail` |
| Long text "Light AI details" | `message`, `service_interest`, form answers (`lead.form_answers`, see [Website request forms](https://docs.light-ai.app/forms)) and `project.app_url`; on approvals `totals.total.decimal` and `line_items[]` as text |
| Not mappable | Photos and previews (forms cannot receive files from n8n) and quote line items as an SA estimate: send links and text instead. |

## Notes

- The form's endpoint and field names are specific to each account and are not a documented API. Copy them again after you republish or edit the form, and re-test after Service Autopilot updates.
- V3 forms create or update an account; confirm on the first test that new accounts arrive with the lead status and source you expect.
- Forms are part of Service Autopilot's Pro membership; users need the Forms permissions to build them.
- For records that can't be submitted, use the e-mail fallback: n8n sends the office the customer, address, line items and total, ready to key in.
- Photos and instant previews: webhook payloads carry only asset ids (`assets.photos[]`, `assets.mockups[]` with `url: null`). Fetch `GET /v1/leads/{id}` for links that expire after 60 minutes and download the files if the CRM can store them; otherwise store `project.app_url` (sign-in required). Never save a 60-minute link in a CRM.

## Sources

- [New SA Forms (V3) user guide](https://www.serviceautopilot.com/wp-content/uploads/2024/11/New-SA-Forms-V3-User-Guide-2024.pdf)
- [Classic (V2) Forms user guide](https://www.serviceautopilot.com/wp-content/uploads/2024/11/Classic-V2-Forms-User-Guide-2024-1.pdf)
- [n8n HTTP Request node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/)
