Guide
How to add a service request form to your website
CalSpark gives your business a hosted request page and a snippet you can paste into your site. Here is the setup, what happens when a customer submits it, and the limits you should know about before you rely on it.
By CalSpark team. Published . Updated .
Set it up in about five minutes
- Sign in as an admin and open Company. In the Features card, turn on Request form. It is off until you do, and Settings, Lead form does not appear without it.
- Open Settings, then Lead form.
- Choose a company link name: 3 to 40 lowercase letters, numbers and hyphens. Changing it later breaks links you already shared, so pick a name you will keep.
- Turn on Accept requests from the public form and click Save. While it is off, the link shows a not available page and nothing can be submitted.
- Under Share your form, click Copy public link or Copy embed code.
- Paste it into your website, as described below, and publish.
- Submit a test request yourself and find the new job in the Unassigned/Unscheduled Jobs list on the dispatch board.
- Optionally, switch on the instant reply under Settings, Automations.
The hosted page lives at /request/ followed by your link name, on your CalSpark address. It shows your company name and logo and works on a phone.
Getting it onto your website
The embed code is a single iframe, which is a window onto the hosted page. It looks like this, with your real address filled in by CalSpark:
<iframe src="https://your-calspark-address/request/your-company-name?embed=1" title="Request service" width="100%" height="720" style="border:0;max-width:640px" loading="lazy"></iframe>Most website builders have an embed, custom HTML or code block. Add one to the page where you want the form, paste the snippet, and publish. Where that block lives and what it is called differs by builder, so look in your builder help for the word "embed". Some builders or plans restrict what code you can paste. If yours will not take it, add a button on your site that links to the public link instead. Customers fill in the same form either way.
What happens when someone submits
- A lead is recorded with the name, phone, email and message.
- The customer is matched by phone or email. If there is no match, a new customer is created, with an address when the visitor filled one in.
- An unscheduled, unassigned pending job is added, with the message as the scope of work. It appears in the Unassigned/Unscheduled Jobs list on the dispatch board, ready for you to schedule.
If the visitor matches an existing customer, CalSpark attaches the new job to that customer and does not change the name, phone, email or addresses on file. Anything different they typed is written as a note on the job for you to review.
The form has a text message checkbox. Ticking it is noted on the lead, but it does not set text consent on the customer. A text is only enabled after they reply YES to a confirmation text, and that needs text messaging set up, which is not turnkey. Nothing is assumed from an unticked box.
The new-lead instant reply
The New-lead instant reply automation is off by default. When you switch it on, a visitor who gave an email gets a message right away, and company admins get an email titled New lead. Sends are held until 08:00 during quiet hours. A text goes out only if you have your own Twilio connection.
Say three things: you got it, when they will hear back, and what to do if it is urgent. Use {{lead.name}} and {{company.phone}}.
Subject: Thanks for contacting {{company.name}}
Hi {{lead.name}},
We got your request and will call you by the end of the next business day. If water is running or the power is out, call {{company.phone}} now.
{{company.name}}Do not promise a time you cannot keep. By default, CalSpark sends at most 50 automatic messages a day from public form activity.
Sending leads to another system
Each submission also fires a lead.created event. If you want new leads in a spreadsheet or another tool, point a signed webhook at it. The payload carries the lead name, email, phone, source and message. See webhooks and API and the developer docs. There is no public Zapier app today, so a webhook receiver or your own script does the work.
Spam, fields and limits
CalSpark checks every submission with a hidden field that bots tend to fill in, a time-limited form token (a submission within about 3 seconds of loading the page is refused), and rate limits per address and per company link. The platform can also use Cloudflare Turnstile when it is configured. None of this is a promise that no junk gets through. Submissions are unverified, so call back before you roll a truck.
The form fields are fixed: name, phone, email, service address, what you need, preferred time and date, and the text checkbox. You cannot add or remove fields. Name and a short description of the problem are required, and you need a phone or an email. Phone is optional if the visitor gives an email, so keep the page around the form short and ask for little. There is no photo upload on the form.
Questions
How do I turn the request form on?
Start in Company, Features, and turn on Request form. Then open Settings, Lead form, choose a link name, turn on Accept requests from the public form and save. The form is off by default, so nothing can be submitted until both steps are done.
Where is the form hosted?
At /request/ followed by your company link name on your CalSpark address. You choose the link name under Settings, Lead form.
Can I change the questions on the form?
No. The fields are fixed. Name, a description of what they need, and a phone or an email are required.
Will a submission change an existing customer record?
No. A match by phone or email gets the new job attached, and any new details are added as a note on the job for staff to review.
Does ticking the text box mean I can text the customer?
Not by itself. It is noted on the lead. Texting starts only after the customer replies YES to a confirmation text, and text messaging needs your own Twilio account.
Can I get new leads somewhere else?
Yes, through the lead.created webhook event. There is no public Zapier app.
Keep reading
- Webhooks and API: setup, examples and limitsTurn on the API in Company, Features, then create API keys and add a signed webhook endpoint under Settings, Developers. A worked example and the limits.
- Job scheduling and dispatch timelineA dispatch board with a row per technician, in day and week views. Click to create a job, drag to reschedule or reassign, and get a warning when two jobs overlap.
- A dispatcher daily checklist for a small shopA practical daily and weekly schedule checklist for the person dispatching 5 to 10 technicians, from the evening before to the end of the day.
- Developer docs: REST API, webhooks and eventsThe CalSpark REST API: Bearer API keys, scopes, pagination, idempotency, signed webhooks and every event payload. Off until an admin enables it in Company, Features.
- Appointment Reminder Emails Customers Actually ReadWhat to put in an appointment reminder email for a trade business: subject lines, the first line, example wording, 24 hour and 2 hour timing, and how to check the log.
Try it with your own jobs
14-day free trial. No card. $49 a month flat for up to 10 users after that.