Privacy Policy
Last updated: October 18, 2026
OnsiteBoard is a job management and invoicing app for independent field technicians, operated by Zilanti LLC ("we", "us"). This policy explains what data OnsiteBoard handles, why, who processes it on our behalf, and how to delete it.
Two groups of people are involved:
- Technicians — the people who sign up for and use the app.
- Their customers — homeowners who book a visit, sign an estimate or invoice, or pay online through a link a technician sends them.
Data technicians provide
- Account: email address, name, and a password (the password is handled by Google Firebase Authentication; we never see it). If you sign up with Google or Apple instead, we receive your name, your email address and an account identifier from them, and they learn that you use OnsiteBoard to sign in. We don't receive your password, and we don't get access to anything else in that account.
- Business profile: company name, address, phone, email, website, and terms and conditions shown on invoices.
- Customer records: the names, phone numbers, email addresses, and service addresses of the technician's own customers.
- Work records: jobs and schedules, estimates and invoices, payments recorded, customer signatures, and photos attached to a job.
Customer records are entered by the technician and belong to the technician. We store and process them only to provide the app.
Data customers provide
- Booking a visit: name, phone number, email address (optional), service address, optional notes, and a preferred time.
- Signing online: a drawn signature and typed name approving or declining an estimate or invoice. As a record of the signature, we also store the exact wording agreed to, the time, the signer's IP address and browser type, and a fingerprint (hash) of the document's contents, so the technician and the customer can later show what was signed. These are kept with the document.
- Paying online: card details are entered on a page hosted by Stripe and go directly to Stripe. We never receive or store card numbers. We receive the amount paid, any tip, and confirmation that the payment succeeded.
- Viewing a service report: if a technician sends a report after a visit, the customer opens it from a private link. The report shows the business's name and contact details, the visit date and street address, the services done, readings and products applied (for example pool chemistry or pest control products with their EPA registration number), notes and only the photos the technician chose to include. It shows no prices or payment details. Photo location data is removed. A link exists only after the technician creates it for that visit. The technician can turn it off or replace it at any time, it stops working after 90 days, and the report is deleted with the job.
- Rating a visit: if a technician turns on review requests, the customer gets a text or email after the job with a link to a rating page. We store the star rating and when it was given, any private note and contact number or email the customer chooses to leave, when the page was opened, and whether they tapped the button to post on Google. The customer's name is copied from the technician's records. This is saved with that job, only the technician can see it, and nothing is shown publicly. Every customer sees the option to post on Google, whatever their rating. A review posted on Google goes to Google directly, under Google's privacy policy.
Review request emails come from notifications@onsiteboard.com, and replies go to the technician's business email. Each one has an unsubscribe link; if a customer unsubscribes, we keep a scrambled (hashed) form of their email address on the technician's do-not-email list and send no more review requests to it, even if the customer record is later changed or deleted.
A technician can mark a customer "No texts" (for example after they reply STOP). The app then stops offering to text that customer.
When the booking form or a rating page is submitted, the submitter's IP address is recorded to limit repeated submissions. It is deleted automatically about a day later.
Our role for technicians' customer data
For the personal information technicians enter about their customers, and that customers give through booking, signing, payment and rating pages, the technician is the business that decides how it is used, and Zilanti acts as the technician's service provider (processor). We process that data only to provide OnsiteBoard to that technician, under our Terms of Service. We do not sell it, share it for advertising, or use it for any other purpose. If you are a technician's customer and want to see, correct or delete your information, contact that technician. You can also contact us, and we'll pass the request on and help them respond.
How data is used
Only to run OnsiteBoard: storing a technician's records, generating invoices and estimates, taking payments, and sending the emails a technician asks the app to send. We do not:
- sell personal data,
- share anything a technician or their customers enter in the app or the browser dashboard, or anything from the pages customers use to book, sign, pay or rate a visit, with advertisers (the only app data that reaches ad networks is the Android ad measurement described under "Analytics in the app," which you can turn off),
- show ads in the app, or put analytics or ad tags on the pages customers use to book, sign, pay or rate a visit,
- use the advertising identifier on iPhone, or on Android beyond the ad measurement described under "Analytics in the app,"
- track device location.
Your customers' information is never part of app analytics.
Analytics in the app
To understand how technicians find and use OnsiteBoard, the app uses Google Analytics for Firebase. It records a small set of events about the technician's own account: the app being opened, pages viewed in the app, signing up, starting the trial, and subscribing, renewing or getting a refund (with the price and currency). Each event is tied to a random app instance ID and to the technician's account ID, so we can count sign-ups and subscriptions. No names, email addresses, phone numbers or customer data are sent. On iPhone, ad consent is set to denied, so these events are not shared with Google for advertising; Google may tell us, only in aggregate, how many installs and sign-ups came from our Google ads, using Apple's SKAdNetwork and its own modeling. On Android, we let Google use these events to measure which of our Google ads led to an install, sign-up or subscription; the data isn't used to personalize ads, and you can turn this off in Settings → Share usage analytics. No advertising identifier is collected on iPhone. On Android, the advertising identifier is used only for the ad measurement described next.
Ad measurement with Meta and TikTok (Android only). The Android app shares your phone's advertising ID with Meta and TikTok to measure our ads. The first release with this showed a one-time notice about it with a Turn off button, and shared nothing before you had seen it; later releases don't show that notice. Unless you turn it off, the app reads your phone's advertising ID, and AppsFlyer sends it to Meta and TikTok with basic device details (such as model, Android version and IP address) and the fact that you installed the app, signed up, started a trial or subscribed. No amounts, names, contact details or customer data are sent. Meta and TikTok use this to measure and improve our ads, under their own privacy policies (Meta, TikTok). You can turn it off any time in Settings → Ad measurement with Meta and TikTok, or by turning off Share usage analytics, and nothing more is sent after that. You can also reset or delete the advertising ID in your phone's Android settings. If you had the app before this was added and never saw a notice about it, it stays off unless you turn it on. Releases of the Android app from before this was added share nothing with Meta or TikTok.
- Apple Search Ads: If you came from an Apple Search Ads ad, Apple tells us which campaign, ad group and keyword it came from, the date of the tap, and your country or region. We store that with your account to see which ads work. We do not receive your name, email or device ID from Apple, and we do not share this with other advertisers. If you turn off "Share usage analytics" in Settings, we stop collecting it. Data already stored stays until you delete your account.
- AppsFlyer: the app uses AppsFlyer to see which ad campaigns led to installs, sign-ups, trials and subscriptions. On iPhone it reads Apple's aggregated SKAdNetwork reports; on Android it reads the campaign tag that Google Play passes with the install. AppsFlyer receives the app's events (sign-up, trial start, subscription with its price and currency), the device model and system version, an app-specific ID, the IP address and, on Android, the country and carrier code of your mobile network, and product milestones such as your first job, first invoice sent, payments connected and first payment received, without amounts or customer details (during your first 30 days). Links on onsiteboard.onelink.me are handled by AppsFlyer, which records the click to route it. AppsFlyer does not receive your name, email or your customers' data. On iPhone it receives no advertising identifier and sends no data about you to ad networks. On Android it does both only for the ad measurement with Meta and TikTok described above, unless you have turned that off. To have AppsFlyer delete its data about your device, email us and we'll send the request to AppsFlyer.
- SKAdNetwork: Apple's privacy-preserving system reports to ad networks, in aggregate and without identifying you, whether an ad led to a sign-up, a first job, a trial or a subscription.
- Turning it off: Settings → Share usage analytics. When it's off, the app and our servers send no analytics events for your account, AppsFlyer is stopped, and Android ad measurement with Meta and TikTok is turned off.
Our website
The OnsiteBoard website (onsiteboard.com, including its pages for each trade) uses the Google tag from Google Ads, the Meta Pixel and the TikTok Pixel to measure our own advertising: whether a visitor arrived from one of our ads, and whether they then tapped the App Store or dashboard button. The TikTok Pixel reports only that one of our pages was viewed: the page address and, as with any web tag, your IP address, browser type and TikTok's cookie. We send TikTok no other events from it, we don't use it to show our ads again to people who visited our website, and it is not loaded on our free price-sheet, invoice or estimate tools. With the Meta Pixel we may also show our own ads on Facebook and Instagram again to people who visited our website, chosen by which of our pages they looked at; we give Meta no list of names, emails or phone numbers for this. Google, Meta and TikTok may set cookies for this and process the data under Google's privacy policy, Meta's privacy policy and TikTok's privacy policy. You can turn off ad personalization at adssettings.google.com and in Facebook's ad preferences. This applies only to the website, not to the app or to anything a technician or their customers enter in it.
On website pages that have a form, such as our free price-sheet tools, the Google tag can also notice an email address or phone number typed into the page. It turns it into a scrambled (hashed) code in your browser and sends that code to Google, which uses it to match our ad clicks with what visitors then do on our site. We don't receive or store what you type into those tools: the price sheet is built in your browser. If you'd rather not, use Your privacy choices below or turn on Global Privacy Control, and the tag is not loaded at all. The TikTok Pixel is not loaded on those pages.
The free invoice maker and estimate maker work in your browser. What you type into them, including your customer's details, is not sent to us, and those two pages load no advertising tags. If you keep a draft, it is saved in your browser only, until you clear it. If you press "Send to customer", the document is passed inside your browser to the OnsiteBoard dashboard, where it waits for up to 24 hours. It is saved to an account only if you create or sign in to one and choose to use it there; otherwise it is deleted from your browser.
Because Google, Meta and TikTok collect this browsing data through their own tags, they can combine it with what they learn on other websites over time. Under some state laws, letting them do that on our site may count as "sharing" personal information for targeted advertising. The Android ad measurement with Meta and TikTok may count as sharing in the same way; you can opt out of it with the switch in the app's Settings. Telling an ad company that its ad led to a sign-up, as described below, may count as sharing too; the same choices turn it off. We don't sell personal information for money.
We also keep our own count of how many times the App Store or dashboard button was tapped, or "Send to customer" was pressed in one of our free tools, by page and by the ad campaign named in the link (or only the ad company, when the link names no campaign). It is a daily total only: no cookie, IP address or identifier is stored with it, and nothing typed into a tool is part of it.
Like any website, our hosting provider keeps standard request logs (IP address, browser type, time) for a short period for security and troubleshooting.
Global Privacy Control and Do Not Track: if your browser sends a Global Privacy Control signal, we treat it as a request to opt out of sharing for targeted advertising, and our website does not load the Google, Meta or TikTok tags for you and keeps no ad click identifier. We don't otherwise respond to Do Not Track signals.
Your privacy choices: you can also turn off the Google, Meta and TikTok tags, and the keeping of ad click identifiers, on our website in this browser.
If you arrive from an ad, the site keeps the ad's campaign tags and its click identifier (a code that Google, Meta or TikTok adds to the link you tapped), with the time of the tap, in your browser for up to 90 days, and passes them along if you open the browser dashboard from the site or from one of our free tools. Links to the app stores carry the campaign tags only. A page may also look at them, in your browser only, to choose which buttons it shows you: for example, the sign-up button without the app store buttons when you came from one of our ads. Nothing is sent anywhere for this.
If you create your account in the browser, these are saved with your account: the campaign tags and which of our pages or tools you signed up from, for as long as the account exists; the click identifier for up to 90 days after the tap. We use the campaign tags for our own counts. We use the click identifier to tell the ad company whose ad you tapped that it led to a sign-up and to first steps in your account, such as setting up, sending your first document or adding a first job, when they happen in the browser. We send the kind of event, its time and that identifier; to Meta also the code its own tag gave your browser on our site and your browser's user-agent string (the browser and device type). The kind of event says which step it was (a sign-up, a first step, a first job, a first estimate or invoice sent) and nothing about what is in it. We don't send your name, email or phone, and never anything about your customers. Nothing you do in our phone apps is reported this way; what the Android app shares for ad measurement is described above.
You can turn this off. Before you sign up: use Your privacy choices above or Global Privacy Control, and no click identifier is kept or passed on. After you sign up: turn off "Ad measurement" in the browser dashboard's Settings; we stop reporting and delete the saved click identifiers.
Service providers
These companies process data on our behalf, only as needed to provide the feature listed:
| Provider | What for |
|---|---|
| Google Firebase / Google Cloud | Hosting, database, file storage (photos and signatures), sign-in, and server functions. |
| Google Gemini (via Google Cloud Vertex AI) | Only after the technician allows it in the app: a customer's message the technician pastes in (which can include the customer's name, phone number and address) is read to fill in the customer's details; a photo is read for the brand, model and serial number on an equipment label (only the photo the technician picks with "Read label"; versions of the iPhone app before 1.2 instead check new photos on a job in a trade that uses equipment labels until a label is found, if AI features are turned on); and a job's notes are used to draft service descriptions. The technician can decline and enter everything by hand. |
| Google Maps Platform | Address autocomplete, and a street-level image of the service address on a job. |
| Stripe | Card payments, and the payout account each technician sets up to get paid. Stripe collects a technician's identity and bank details directly, under Stripe's own privacy policy. |
| Google Analytics for Firebase | App usage and subscription events, as described under "Analytics in the app." On iPhone, ad consent is denied and Google reports our ad results only in aggregate; on Android it is limited to measuring our own Google ads. |
| AppsFlyer | Ad attribution through Apple's SKAdNetwork on iPhone and the Google Play install referrer on Android, as described under "Analytics in the app." No advertising identifier on iPhone; on Android, only for ad measurement with Meta and TikTok unless you turn it off. |
| Apple | App Store subscriptions and refunds, Apple Search Ads attribution, and SKAdNetwork. |
| Google reCAPTCHA / Firebase App Check | Checking that requests come from the real app and not from bots. It uses device and app signals, including basic crash and performance data, under Google's privacy policy. |
| Twilio SendGrid | Delivering email: invoices, estimates and review requests to customers, and booking, signature and payment notifications to technicians. |
| Anthropic (Claude) | An AI assistant we use to build, run and support the service. When we work on a problem, count how the service is used or read support mail, it may process account records and messages sent to us. |
On the technician's phone
If a technician turns on Caller ID in the app, the names and phone numbers of their customers are copied into the iPhone's call identification list so incoming calls show who is calling. This list stays on the phone and is not sent to us or to Apple. Turning Caller ID off removes it.
Messages we send you
We send technicians service messages about their account: security alerts, receipts, trial and subscription notices, and alerts about their jobs. In the first days of a new account we may also email about setting it up; each of those emails has a link that stops them. Tips and offers, by push notification or email, are sent only if the technician turns them on in Settings → Tips & offers, and can be turned off there at any time. Marketing emails also include an unsubscribe link.
Account security
For each phone or computer that signs in to an account, we keep the device's name and model, the version of the app on it, and when it first and last signed in. When an account signs in on a device it hasn't used before, we email the account owner the device, the time and the IP address it came from, so they can spot someone else using their account. Copies of that email are deleted after about 30 days, and device records are deleted with the account. To confirm an email address we send it a 6-digit code; the code is kept in scrambled form for up to a day.
Security
Each technician's data is isolated to their own account: security rules prevent any account from reading or writing another account's records. Data is encrypted in transit and at rest on Google Cloud infrastructure.
Retention and deletion
A technician's data is kept for as long as their account exists. Copies of sent emails are deleted automatically after about 30 days.
Deleting an account: in the app, go to Settings → Account → Delete account. This permanently deletes the account and all of its customers, jobs, estimates, invoices, payment records, signatures, and photos. It cannot be undone. If you answer the optional question shown when you delete your account, we keep that answer for up to 12 months with nothing that identifies you.
A technician's Stripe account is not deleted, because it belongs to the technician and holds their payout and tax history. Only its connection to OnsiteBoard is removed. It can be closed through Stripe.
A technician can delete a single customer together with all of their jobs, documents, payments, photos, signatures and ratings. Customers who want a record removed can ask the technician they worked with, or contact us below.
Street-level and route map images are loaded from Google each time they're shown and kept only in the app's memory. We don't store copies. A technician can turn AI features off at any time in Settings, which withdraws their consent.
Your privacy rights
Depending on where you live, including California, Colorado, Connecticut, Virginia, Oregon, Texas and other states with privacy laws, you may have the right to:
- know what personal information we have about you and get a copy of it,
- correct it,
- delete it,
- opt out of the sale of personal information or its use or sharing for targeted advertising (we don't sell it; to opt out of website ad tags, use Your privacy choices, turn on Global Privacy Control in your browser, or email us; in the Android app, turn off Settings → Ad measurement with Meta and TikTok),
- not be treated differently for using these rights.
Categories of personal information we collect, as described above: identifiers and contact details (name, email, phone, address), commercial information (jobs, estimates, invoices, payments), signatures and photos, internet activity on our website and pages (IP address, pages visited, ad click identifiers), app usage events and device identifiers (app instance ID, device name and model), and approximate location derived from a service address or IP address. We collect it from technicians, from their customers, and from our website visitors' browsers. We use it for the purposes described in this policy and disclose it only to the service providers listed above, and, for website visits and browser sign-ups, to Google, Meta and TikTok as described under "Our website," and, for the Android app, to Meta and TikTok through AppsFlyer as described above. We do not collect sensitive personal information for inferring characteristics about anyone.
To make a request, email support@zilanti.com. We'll confirm we received it, verify it's you (usually by replying from the email on the account), and respond within 45 days. You can use an authorized agent. If we decline your request, you can appeal by replying with the word "Appeal," and we'll respond within 45 days of the appeal. If you're not satisfied with the result, you can contact your state attorney general.
If you're a customer of a technician who uses OnsiteBoard, see "Our role for technicians' customer data" above.
Children
OnsiteBoard is a business tool and is not directed at children under 13. We do not knowingly collect data from children.
Changes
If this policy changes, we will update it here and change the date at the top.
Contact
Zilanti LLC
1800 Ironwood Ct W, Oldsmar, FL 34677
support@zilanti.com