Atlas Webform

Central form & email service. Pick any fields. Design stays in each website.

Field catalogue

Every website picks a subset. Suffix ! marks a field required.

fullNameFull Name
phonePhone · tel
emailEmail · email
pickupLocationSuburb / Address
vehicleRegoVehicle Rego
vehicleMakeVehicle Make
vehicleModelVehicle Model
vehicleYearVehicle Year
suburbSuburb
messageMessage · textarea

Email config (shared for every site, set in .env)

MAILGUN_API_KEY

Mailgun API key

MAILGUN_DOMAIN

Sending domain

MAILGUN_FROM_EMAIL

From address

CONTACT_TO_EMAIL

Destination inbox

Subject is auto-generated: "New [site-name] enquiry"

Embed options

Web ComponentInline · auto-height · theme via CSS vars
<script src="https://YOUR_DOMAIN/atlas-form.js"></script>

<atlas-form
  fields="fullName!,phone!,pickupLocation!,vehicleRego,email"
  site-name="Cash For Cars Rotorua"
></atlas-form>

<!-- Optional: theme the button + focus colour -->
<style>
  atlas-form {
    --af-brand:      #AAFF2E;
    --af-brand-text: #050802;
  }
</style>
Preview this example →
iframeZero setup · fixed height · full isolation
<iframe
  src="https://YOUR_DOMAIN/form?fields=fullName!,phone!,pickupLocation!,vehicleRego,email&site=Cash%20For%20Cars%20Rotorua"
  width="100%"
  height="500"
  style="border:none;"
  loading="lazy"
></iframe>
Direct APIBuild your own form · full design control
POST https://YOUR_DOMAIN/api/contact
Content-Type: multipart/form-data

siteName   = "Cash For Cars Rotorua"
fullName   = "Jane Smith"
phone      = "021 123 456"
email      = "jane@example.com"
source     = "google"       (optional, auto-tracked)
website    = ""             (honeypot, leave empty)

Chat widget

Floating chat bubble with a scripted Q&A flow. Collects visitor details and emails them. Flows are defined in app/_lib/chat-flows.ts.

Embed

<script
  src="https://YOUR_DOMAIN/atlas-chat.js"
  data-flow="cashforcarsrotorua"
  data-brand="#AAFF2E"
  data-brand-text="#050802"
></script>

Flow steps

welcome
optionsHi! How can I help you today?
Get a quote for my carquote_suburbHow does it work?how_it_worksTalk to someonecollect_name
how_it_works
optionsWe come to your location, inspect your vehicle, and pay cash on the spot. The whole process usually takes less than 30 minutes.
Get a quotequote_suburbContact uscollect_name
quote_suburb
inputWhat suburb or area are you in?collects → pickupLocationquote_rego
quote_rego
inputWhat is your vehicle rego? (skip if you don't have it handy)collects → vehicleRego (optional)collect_name
collect_name
inputWhat is your name?collects → fullNamecollect_phone
collect_phone
inputAnd your best phone number?collects → phonedone
done
endThanks! We will give you a call shortly.