# Deleting your account Source: https://docs.scanova.io/account/delete-account What happens when you delete a Scanova account, step by step: what gets removed, what stops resolving, and what you should export before you begin at all. **Delete Account**, in red at the bottom of the profile card on the [Account tab](/account/profile-and-appearance), permanently removes your Scanova account. The flow asks why you're leaving, shows a retention screen tailored to that reason, and ends with a password-confirmed final step. Deletion is immediate once confirmed and can't be undone. There is no recovery once you complete this flow. Everything below documents the steps so you know what to expect — back out with **Cancel** at any point if you're not sure. ## Selecting a reason Click **Delete Account** to open the **Delete Account** drawer. **Select a reason** is required before you can continue; an optional **Additional comments** box lets you add detail. Delete Account drawer asking 'Help us improve by letting us know why you want to take this action?' with a Select The dropdown offers six reasons: * Product is complicated/not working as expected * Didn't get the results I hoped for with QR Codes * Plans are too expensive * Found a better alternative * No longer required and want to delete my data * Other (please specify below) Click **Next** to continue to the retention screen for your chosen reason. ## The retention screen Which screen appears next depends on the reason you picked: * **Plans are too expensive** shows **A special discount, just for you** — a plan/billing-frequency selector offering up to 40% off, with **Avail Discount Now** (switches your plan instead of deleting) and **Continue with Deletion** buttons A special discount, just for you screen with a plan and billing-frequency selector offering up to 40% off * Every other reason shows **We are sorry to see you go** instead — a reminder of what you'd lose (Dynamic QR Codes, Custom QR Codes, QR Code Tracking & Analytics, Lead Generation, High-resolution QR Codes, Mobile Landing Page Design, with an **Explore All Features** link), a data-security assurance (ISO 27001:2013, GDPR, and SOC 2 compliance), a red warning that the deletion is permanent and can't be undone, and **Cancel** / **Delete Account** buttons We are sorry to see you go screen listing Scanova features you'd lose ## Confirming deletion Proceeding from either retention screen (**Continue with Deletion**, or **Delete Account**) reaches the final **Confirm account deletion** step: an acknowledgement checkbox and a **Current Password** field. **Confirm Delete** stays disabled until both are filled in. Confirm account deletion step with an acknowledgement checkbox, a Current Password field Clicking **Confirm Delete** here deletes your account immediately, with no further confirmation. Use **Cancel** on this or any earlier screen to back out safely — canceling returns you to the Account page with nothing changed. ## Related * [Profile & appearance](/account/profile-and-appearance) — where the **Delete Account** link lives, alongside the rest of your account settings * [Subscription & billing](/billing/subscription-and-billing) — manage or downgrade your plan without deleting your account # Email preferences Source: https://docs.scanova.io/account/email-preferences Choose which Scanova emails actually reach your inbox, from product announcements to scan reports, without unsubscribing from everything that matters. The **Email Preferences** tab (`/account/email-preferences`) controls which transactional and marketing emails Scanova sends you. It sits alongside **Account**, **Push Notifications**, and **Appearance** under `/account`. Email Preferences tab showing a Notifications header reading 6 of 6 enabled with Disable all and Enable all links ## Notification categories Six categories can each be toggled on or off independently: | Category | What it covers | | - | - | | **Subscription Reminders** | Reminder emails about your subscription plan's expiry. | | **Billing and Payments** | Emails related to payments and invoices. | | **Expired QR Codes** | Notifications when someone scans an expired QR Code. | | **API Tokens** | Emails about API token expirations. | | **Assistance Emails** | Tips and guidance to get the most from the platform. | | **Promotion Emails** | Latest offers, discounts, and exclusive deals. | The header above the list shows a running count (e.g. "6 of 6 enabled"). ## Turning a category off Click the toggle to turn a category off. Since this stops emails you might want later, a confirmation dialog appears first: Stop receiving this email? confirmation dialog with the message You can turn this notification back on anytime Click **Confirm** to disable the category, or **Cancel** to leave it unchanged. Turning a category back **on** applies immediately, with no confirmation step. The change is optimistic — the toggle updates right away and only reverts if the save fails, so you'll rarely notice a delay either way. ## Bulk actions Next to the "N of 6 enabled" count, **Disable all** and **Enable all** apply the same toggle to every category at once. Disabling all still goes through the same confirmation dialog described above. ## Related * [Profile & appearance](/account/profile-and-appearance) — the sibling Account tab for profile, security, business info, and localization settings * [Subscription & billing](/billing/subscription-and-billing) — the plan and payment details behind the Billing and Payments email category above # Profile & appearance Source: https://docs.scanova.io/account/profile-and-appearance Manage your Scanova profile, your password and security settings, business details, localization, and whether the interface renders in light or dark mode. Your profile, login security, business info, and localization settings all live on the **Account** tab at `/account`. A separate **Appearance** tab controls the dashboard's theme. Both are reachable from the account menu at the bottom of the sidebar. Scanova Account tab showing a profile card with an avatar, profile type, industry, language, time zone The card on the left summarizes your profile type, industry, language, time zone, and the date you joined ("Member since"), plus a **Delete account** link. The panel on the right is where you make changes. Hovering the avatar shows a **Change Photo** overlay — you can upload a profile photo. Without one, it shows your initials in a colored circle instead (for example "DO" for a user named "Docs"). ## Updating your name Click the pencil icon next to **Full Name** to edit it inline. This splits into two separate fields — **First name** and **Last name** — each with its own text input, plus a shared checkmark to save and an X to cancel. Full Name field in edit mode showing separate First name and Last name text inputs, with shared checkmark/cancel buttons ## Changing your email Click the pencil icon next to **Email Address** to open the **Change Email** drawer. The drawer shows your current email (read-only) and a **New email** field. Enter the address you want to switch to. Change Email drawer with Current email (read-only), New email input, Current Password input Enter your current password in the **Current Password** field, then click **Proceed**. Scanova sends a 6-digit verification code to your new email address. Enter it to complete the change. Changing your email signs you out — you'll need to log back in with the new address. Newsletter subscriptions continue on your previous email, as the drawer notes. If you signed up with Google or another SSO provider, the email field isn't editable — your email is managed by that identity provider instead. ## Password and multi-factor authentication The **Login & Security** section shows your password as a masked value and your MFA status as **Off** or **On · \{method}**. Click either pencil icon to open the corresponding drawer: * **Password** opens **Change Password**, which asks for your current password plus a new password (8–200 characters) and confirmation * **Multi-factor authentication** opens a method picker for **Passkey** (labeled "Recommended for this device" when your browser supports it), **Email**, or **Authenticator App** Change Password drawer with Current Password, New Password, and Confirm Password fields Choose authentication method panel offering Passkey For the full setup walkthrough for each method, see [Multi-factor authentication](/authentication/multi-factor-authentication). For resetting a forgotten password, see [Password reset](/authentication/password-reset). ## Business info The **Business** section records your profile type and industry — used to tailor recommendations, not to gate features. Click either pencil icon to open the **Edit profile** drawer. Edit profile drawer with a Profile type selector **Profile type** is one of: * **Individual** — personal use * **Small Business** — teams & startups * **Enterprise** — large orgs **Industry** is a dropdown that depends on the profile type you pick — for **Individual**, the options are **Consultant**, **Freelance**, **Student**, and **Other**. Industry dropdown open showing Consultant, Freelance, Student, and Other options Click **Save changes** to apply. ## Localization The **Localization** section controls the language and time zone Scanova uses for you. Click either pencil icon under **Language** or **Time Zone** to open the **Edit localization** drawer. Edit localization drawer with a Language dropdown set to English (EN) and a Time zone field showing Asia/Kolkata * **Language** — English, Español, Français, or Deutsch * **Time zone** — a searchable dropdown listing every IANA time zone (for example **Africa/Abidjan**), each labeled with its **GMT** offset — your current zone shows as, e.g., **Asia/Kolkata (GMT+5:30)** Click **Save changes** to apply — the change takes effect immediately across the dashboard. ## Push notifications tab The **Push Notifications** tab (`/account/push-notifications`) sits between Email Preferences and Appearance. As of this writing it shows a single disabled **Browser Push Notifications** toggle labeled "Push notifications aren't available yet. Check back soon." — the feature is visible in the UI but not yet functional. ## Appearance tab The **Appearance** tab (`/account/appearance`) is separate from the Account tab and controls only the dashboard's visual theme. Appearance tab showing a Theme section with three selectable preview cards: Light, Dark, and System Pick **Light**, **Dark**, or **System** (which follows your OS setting) — the change previews immediately. Click **Update preferences** to persist your choice to your account, so it carries across devices and sessions. The moon/sun icon in the top bar toggles between light and dark instantly for the current session, without opening this tab — use the Appearance tab when you want the choice saved to your account, or to pick **System**. ## Deleting your account **Delete account**, in red at the bottom of the profile card, starts a multi-step flow: a required reason for leaving, a retention screen tailored to that reason, and a final password-confirmed step. Deletion is immediate once confirmed and can't be undone — see [Deleting your account](/account/delete-account) for the full walkthrough. ## Related * [Deleting your account](/account/delete-account) — the full Delete Account flow, reason by reason * [Multi-factor authentication](/authentication/multi-factor-authentication) — the full setup walkthrough for the Manage MFA drawer opened from this page's Login & Security section * [Email preferences](/account/email-preferences) — the sibling Account tab controlling which transactional and marketing emails you receive * [Password reset](/authentication/password-reset) — recovering access if you've forgotten the password managed in Login & Security # AI Studio Source: https://docs.scanova.io/ai-studio/overview Describe the landing page you want and let AI Studio generate its blocks and copy, then refine that draft in the page builder before you publish it live. AI Studio generates a landing page from a plain-language description. Instead of adding blocks one at a time, you describe the page you want in a chat-style sidebar, and the AI drafts it — asking clarifying questions first if your description is too open-ended, or drafting directly if it isn't. ## How to use it From the dashboard, click **Create QR Code**. On the "Create a new QR Code" screen, click **Start** on the **AI Studio** card. Create a new QR Code screen showing three cards: AI Studio (labeled AI, with a Start button) Type a description of the page you want into the sidebar's chat input, for example: > "A wedding page for Sarah and James, June 20 at Rosewood Gardens. Include the event schedule, venue map, and an RSVP form." AI Studio entry screen with a 'Describe your page' heading, explanatory text, eight suggestion chips The AI responds in the chat sidebar. What happens next depends on how specific your prompt was: * If your prompt leaves out details the AI needs (images, contact info, specific copy), it asks clarifying follow-up questions instead of generating right away * If your prompt is specific enough, it responds with a confirmation (e.g. "Your AI-generated landing page preview is ready!") once the draft is built AI Studio chat showing the AI's response asking for portfolio image URLs, contact information Don't assume a single message always produces a finished page in one step. A vague prompt gets a round of clarifying questions first — reply with the missing details to continue. ## Refining the page Once a page is generated, the chat input stays open — send follow-up messages to adjust the result (for example, "change the colour scheme to navy and gold," or "add a section for accommodation recommendations"). Each message produces a new version. ## Suggestion chips If you're not sure how to start, click one of the suggestion chips below the input box: * Event * Wedding * Feedback * Product launch * Restaurant * Portfolio * Lead Generation * App Promotion This chip list matches the live product exactly. Clicking a chip fills the input with a starting prompt you can edit before sending. ## AI credits Generation is metered. The chat panel shows a running counter — **AI Credits: *n* of *5* used** in this account's case — that increments each time you submit a prompt (including follow-up refinements). Watch this counter if you're working with a limited grant. ## The AI Studio editor Once you're inside a generation session, the header offers **Preview** and **Publish**, and a right-hand panel with **General** and **Advanced** tabs covering the QR Code name, its current page URL, the page's URL slug, and folder assignment — separate from the multi-page block builder's own Settings/Theme controls. AI Studio editor showing a chat prompt on the left, a mobile preview frame in the center The live mobile preview in this panel renders through the same published-page domain used by the rest of the product. In some environments that preview domain may be unreachable or gated, in which case the phone mockup stays blank even after a successful generation — this doesn't necessarily mean generation failed; check the chat's own confirmation message and the AI Credits counter instead. ## Publishing When the page looks the way you want it, click **Publish** in the header and confirm in the publish panel to make the page live. The AI-generated QR Code uses the same dynamic QR Code system as the block-based builder — you can change the page content at any time without reprinting the QR Code. ## Editing an existing AI page To return to an AI-generated page, open its QR Code from **QR Codes** and click **Edit** (not **Edit Design**, which opens the QR Code's visual pattern/logo designer instead). Reopening an AI-generated page's editor starts from the default **Describe your page** prompt — the earlier chat thread and generated draft aren't restored. Treat the AI chat as session-scoped rather than something you can resume on a later visit. ## AI in the block builder There is **no separate "AI page" type** you can pick from the ordinary "Add a page" sheet inside a multi-page QR Code's block builder. AI Studio is its own top-level creation method, reached only from **Create QR Code → AI Studio** as described above — not a page type alongside General, Audio, Gallery, Documents, and Intro Page. ## Access requirements Access to AI Studio is controlled by an account-level quota rather than by plan tier alone, so availability can differ between two accounts on the same plan. If the entry card shows **Upgrade** rather than **Start**, contact [Support](/support/overview) to confirm your account's entitlement. Once the quota is present the feature works end to end, metered through the AI Credits counter described above. ## Related * [AI QR / AI Studio](/qr-codes/create/ai-qr) — the Create QR Code entry point this feature is reached from * [Page Builder overview](/page-builder/overview) — the block-based editor AI Studio populates behind the scenes * [Quick Code vs. full Page](/qr-codes/create/quick-code-vs-page) — how AI Studio compares to the other two creation paths # Bot scans Source: https://docs.scanova.io/analytics/bot-scans What bot scans are, why automated crawlers and preview tools register as scans, and how the Exclude Bot Traffic filter keeps them out of your analytics. Bot scans are QR Code scans triggered by automated software, not real people. Scanova detects these using device type identification and flags them separately as **BOT** traffic in scan data. ## What are bot scans When a QR Code's URL is crawled, previewed, or tested by automated tools, it registers as a scan in analytics. Common sources include: * **Search engine crawlers** indexing the destination URL (for example Googlebot, Bingbot) * **Security scanners** checking URLs for malware or phishing * **Link preview tools** generating previews when a URL is shared on messaging or social platforms * **Uptime monitors** periodically pinging URLs to check availability * **QR Code testing tools** used during campaign setup and quality assurance Some common examples seen in scan data: **Googlebot**, **AhrefsBot**, **Semrushbot** (SEO crawlers); **Twitterbot**, **Slackbot** (link preview generators); **Pingdom**, **UptimeRobot** (monitoring tools). ## Impact on scan data Bot scans inflate the Total Scans count, making it harder to measure real user engagement accurately. For QR Codes deployed on high-traffic pages or shared widely online, bot scans can make up a significant portion of scan data. ## Excluding bot traffic Scanova provides an **Exclude Bot Traffic** filter on the [Analytics](/analytics/dashboard) page and in [report](/analytics/reports)/[email report](/analytics/email-reports) requests. When enabled, all metrics — including scan breakdowns by date, location, device, and OS — reflect human scans only, giving a cleaner view of actual campaign performance. ## Related * [Analytics dashboard](/analytics/dashboard) — where the Exclude Bot Traffic checkbox lives day to day * [Reports](/analytics/reports) and [Email reports](/analytics/email-reports) — the same filter, available when requesting a scheduled or one-off report # Analytics dashboard Source: https://docs.scanova.io/analytics/dashboard How to read the Analytics dashboard: filtering by QR Codes, folders or tags, the Overview stat cards, the geography and engagement panels, and exporting. The **Analytics** dashboard (`/analytics`) is where you see how your QR Codes are performing — scan volume, audience, geography, and engagement — across any combination of QR Codes, pages, folders, tags, categories, or users. Analytics dashboard with the filter bar, Overview stat cards, and the scan, audience and geography panels ## Filtering scan data Above the charts, a filter bar lets you scope the whole dashboard: * **Entity type** — switch between QR Codes, Folders, Tags, Categories, or Users * **Entity selector** — a searchable multi-select for the chosen entity type, with a **Select all** shortcut * **Date range** — click the date field to open a two-month calendar picker. Pick a start and end date and select **Apply**, or **Clear** to reset. * **Exclude Bot Traffic** — a checkbox that filters out non-human scans, with a **Learn what it means** link, explained in [Bot scans](/analytics/bot-scans) Two-month calendar date-range picker on the Analytics dashboard, with Clear and Apply buttons After making your selections, select **Get Analytics** to load the data. A **View AI Summary** button (marked Beta) is also available once you have a selection. The dashboard doesn't load any data until you select at least one entity and select **Get Analytics** — it starts on an empty "Get started by selecting..." state. Selecting too many entities and/or too wide a date range (for example, every QR Code on the account across several months) doesn't load the dashboard at all — a **"Generate a report instead"** dialog appears instead, reading "This selection is too large to display here. You can generate a downloadable report instead — we'll email you when it's ready," with **Cancel** and **Create Report** buttons. Narrow your selection (fewer entities or a shorter date range) if you want the live dashboard, or use **Create Report** to fall back to an async [Reports](/analytics/reports) job for a large selection. Generate a report instead dialog, shown when an analytics selection is too large to render live ## Overview stat cards The **Overview** row shows six headline metrics for the selected entities and date range: **Total Scans**, **Unique Scans**, **Source (Scan/URL)**, **Engagement Rate**, **Leads Captured**, and **Conversion Rate**. **Source (Scan/URL)** breaks down how visitors arrived — via an actual QR Code scan versus the underlying short URL opened directly — shown as a ratio (e.g. "0/0"). Each card shows a trend indicator (percentage change against the previous period) once there's data to compare, and each has an info tooltip explaining how it's calculated. When the selection has few or no scans, a **"Low scans? Let's fix that. Get quick tips to improve your QR performance now."** banner appears below the Overview cards, with a **See how** link. Next to the Overview heading are two export menus: * **Export Analytics Report** — a one-off visual export of the current view as PDF, XLS, or XLSX * **Export Scan Data** — a one-off export of the underlying scan records as CSV, XLS, or XLSX These two menus export the dashboard's *current* view instantly. If you need a report you can revisit later, or one delivered on a recurring schedule, see [Reports](/analytics/reports) and [Email reports](/analytics/email-reports) instead. ## Chart panels Below the Overview cards, the dashboard breaks scan activity down into focused panels: * **Scans By QR Code** — your top-scanning codes for the period * **Scans By Day And Time** — a day-of-week × time-of-day heatmap of when scans happen * **Scans By Date** — a trend chart with **Date** / **Week** / **Month** granularity toggles and a percentage change badge versus the previous period * **Scans By Country** — a world map of scan volume by country. Scanova notes that this map is **for representational purposes only**. * **Recommended next moves** — short, auto-generated suggestions based on the period's data (for example, flagging a drop in scans and suggesting you refresh creatives), each tagged with a priority level. With nothing to flag, it shows "No standout actions this period — metrics look balanced." * **Audience & geography** and **Who is scanning** — audience breakdowns. **Audience & geography** toggles between **By region**, **New vs returning**, and **Scan source** views; **Who is scanning** toggles between **Device**, **Browser**, **OS**, and **Handset** views * **Which QR Codes are winning** — a ranked comparison of your QR Codes for the period * **What users did** — on-page event actions, shown as rings representing each event's share of total scans * **Engagement by QR Code** — per-code engagement detail * **Where conversions are lost** — a drop-off view for entities with conversion tracking configured * **Lead Form Data** — data from any lead-capture forms attached to your QR Codes, with table and grid view toggles Every panel has its own empty state (for example, "No scan data yet for this period") when there's nothing to show for the current filter and date range. ## GPS location scans Analytics dashboard GPS location panel before any location-enabled scans have been recorded **Scans By GPS Location** is a dedicated panel for precise, device-reported scan coordinates (distinct from the country-level map above). On an account with no GPS-tagged scans, it doesn't render a map — instead it shows a message pointing you to **Export Scan Data**, since GPS coordinates are only meaningful once you have data to plot. If your QR Codes have collected high-accuracy location scans, expect this panel to render those as points on a map instead. ## Conversion Tracking The **Conversion Tracking** entry in the Analytics section of the sidebar (`/analytics/conversion`) is a separate area for defining conversion funnels and events on top of your scan data. It isn't covered on this page — see [Conversion Tracking](/conversion-tracking/introduction) for full setup and usage documentation. ## Where to go next * [Reports](/analytics/reports) — generate a downloadable, point-in-time analytics or scan-data report * [Email reports](/analytics/email-reports) — set up a recurring report delivered by email or Slack ## Related * [Reports](/analytics/reports) — a downloadable, point-in-time export of this same dashboard's data * [Email reports](/analytics/email-reports) — a recurring, scheduled version of this dashboard's numbers * [Leads & lead lists](/leads/lead-lists) — background on the Lead Form Data this dashboard surfaces * [Bot scans](/analytics/bot-scans) — what the Exclude Bot Traffic checkbox above actually filters out, and why * [How scans are counted](/analytics/scan-counting) — what Total Scans measures when a QR Code has a password, age, lead, form, or location gate # Email reports Source: https://docs.scanova.io/analytics/email-reports Scheduling recurring scan analytics digests by email or Slack: choosing QR Codes, picking recipients, and setting a daily, weekly or monthly frequency. **Email Reports** (`/analytics/email-report`) sets up **recurring** scan-analytics reports delivered automatically by email (or Slack) on a schedule you define — daily, weekly, or monthly. This is different from [Reports](/analytics/reports), which generates a single, one-off report on demand. Use Email Reports when you want a standing digest; use Reports when you want a specific export right now. Email Reports is only shown in the sidebar for accounts with export permission (Pro plans and above). The page states that you can create unlimited email reports. Email Reports list with report name, selection, recipients, frequency, and creator columns ## Setting up a scheduled report From **Analytics > Email Reports**, select **Setup Email Reports**. Set Up Email Report drawer with name, QR Code selection, channel, recipients, and frequency Enter a name in **Report Name** (up to 100 characters) so you can identify it later in the list. Under **Select QR Codes**, choose **Top 5 Performing QR Codes**, **Top 10 Performing QR Codes**, or **Custom** to pick specific codes yourself. Optionally check **Exclude Bot Traffic** to filter out non-human scans. Under **Choose Notification Channels**, select **Email Notification**, **Slack Notifications**, or **Both Email & Slack**. Selecting a Slack-based option checks your workspace's Slack connection status before you can proceed — connect Slack under Integrations first if you plan to use it. Under **Recipients**, enter at least one email address in the **To** field. Select **Cc** or **Bcc** to reveal additional recipient fields if you need to loop in more people without them being primary recipients. Under **Choose Email Frequency**, choose **Daily**, **Once a week**, or **Once a month**. A helper line below confirms the cadence in plain language (for example, "You will receive the email report every 7 days" for weekly). Select **Create Report**. A confirmation toast appears, and the new schedule is added to the list on the Email Reports page. After creating a report, reload the page if the list doesn't immediately show your new entry — a report can be created successfully in the background while the list still shows its empty state until a full refresh. ## Managing existing schedules The Email Reports table lists each schedule's name, QR Code selection, recipient count, frequency, and creator. Use the **Action** column to edit a schedule (pencil icon) or delete it (trash icon) — deleting prompts a confirmation dialog before removing it. ## Where to go next * [Reports](/analytics/reports) — for a one-off report generated on demand instead of a recurring schedule * [Analytics dashboard](/analytics/dashboard) — the live view this data is drawn from ## Related * [Reports](/analytics/reports) — the one-off counterpart to this recurring schedule * [Analytics dashboard](/analytics/dashboard) — the live view these scheduled reports summarize * [Slack](/integrations/slack) — connect your workspace here before choosing Slack as a notification channel above # Reports Source: https://docs.scanova.io/analytics/reports Generating one-off scan analytics reports you can download later, how the request queue works, and when to use a report instead of the live dashboard. **Reports** (`/analytics/reports`) generates point-in-time, downloadable analytics and scan-data files for a chosen set of QR Codes, folders, tags, categories, or users and a chosen date range. It's the one-off counterpart to [Email reports](/analytics/email-reports), which delivers reports on a recurring schedule instead of on demand. Reports is only shown in the sidebar for accounts with export permission (Pro plans and above). Reports list with Requested On, Generated On, Requested By, Status, and Action columns ## Creating a report From **Analytics > Reports**, select **Create Report**. This opens a drawer where you configure the report. Create Report drawer with entity selection, bot-traffic exclusion, date range, and export format Under **Select QR Codes, Folders, Tags, Categories or Users**, choose the entity type from the dropdown, then select the specific items (or **Select all**) in **View/Edit Selection**. Optionally check **Exclude Bot Traffic** to filter out non-human scans. Select **Select Time Period** to open a date-range picker and choose the start and end dates the report should cover. Under **Select Reports and Format**, you can request either or both of: * **Analytics Report** — a visual summary, exportable as **PDF**, **XLS**, or **XLSX** * **Scan Data Report** — the underlying scan records, exportable as **CSV**, **XLS**, or **XLSX** Each has its own format dropdown, so you can request an Analytics Report as PDF and a Scan Data Report as CSV in the same request. Both checkboxes are **checked by default** (Analytics Report as PDF, Scan Data Report as CSV) — uncheck either one if you only need the other. Check **Save this report** to keep this combination of entities, filters, and formats so you can re-run it later without re-entering everything — saved configurations appear under **saved reports**, accessible from a link at the top of the drawer via a **Select saved reports** dropdown. Select **Create New Report**. The drawer closes and a new row appears in the Reports table with a **Requested On** timestamp and a **Status** of **In Progress**. ## After you request a report Requested reports are tracked in a table with these columns: * **Requested On** — when you submitted the request * **Generated On** — when the report finished processing (shown as `—` while still generating) * **Requested By** — the user who requested it * **Status** — a progress indicator: **In Progress**, then either **Ready**/**Completed** or **Failed** * **Action** — where you'd download the finished file, or cancel a pending request A report that covers every QR Code on a large account can take a long while to build. Narrowing the entity selection returns a file sooner. Requesting the **Reports** flow from the [Analytics dashboard](/analytics/dashboard)'s own "selection too large to display" prompt (its **Create Report** button) navigates here (to `/analytics/reports?create=1`) and opens this same Create Report drawer — but your entity selection and date range are **not** carried over. The drawer opens with an empty entity picker and defaults to the last 7 days, so you'll need to re-select everything. ## Where to go next * [Analytics dashboard](/analytics/dashboard) — the live dashboard this data is drawn from, with instant on-screen exports * [Email reports](/analytics/email-reports) — for reports delivered automatically on a recurring schedule instead of generated on demand ## Related * [Analytics dashboard](/analytics/dashboard) — the live view behind every report generated here * [Email reports](/analytics/email-reports) — the recurring counterpart to this on-demand report * [Downloading end-user & RSVP data](/leads/downloading-data) — a separate, differently-behaved export mechanism for lead, form, and RSVP data # How scans are counted Source: https://docs.scanova.io/analytics/scan-counting What counts as one scan when a QR Code has a password, age, lead, form, or location gate — and how the data collected through a gate relates to that scan. A scan is recorded the moment someone opens your QR Code's page or short link — once per visit, regardless of what happens after that. This page explains how that holds true when a QR Code also has a password, age restriction, lead form, linked form, or GPS location gate turned on. ## One scan per visit, gate or no gate Opening a QR Code that has no gates at all records exactly one scan. A QR Code with one or more gates configured works the same way: the scan is recorded as soon as the gate is shown, and that single scan carries through to whatever the visitor does next. This means: * **A gate that's never completed still counts as a scan.** If a visitor sees your password prompt, age check, or lead form and closes the tab without finishing it, that's still one real scan of your QR Code — the same way it would be if there were no gate at all. * **Multiple gates on one QR Code don't multiply the count.** A QR Code with, say, both an age restriction and a lead form shows both gates in sequence, but the whole sequence — from the first gate to the final page — is one visit, one scan. * **Data collected through a gate belongs to that same scan.** An age gate's date-of-birth answer, a GPS location gate's coordinates, and a linked form or lead capture's responses are all recorded against the visit that triggered them — they show up together in your [Analytics dashboard](/analytics/dashboard) and [Export Scan Data](/analytics/dashboard#overview-stat-cards), not as separate, disconnected entries. ## What does count as a new scan A genuinely new page load counts as a new scan — for example, a visitor scanning the same QR Code again later, or opening the link fresh in a new session. This is the same behavior as a QR Code with no gates at all: each real visit is its own scan, which is what **Total Scans** measures. ## Repeat-visibility settings are per QR Code If you've linked the same form to more than one QR Code (see [Skip button & form gates](/forms/skip-button-and-gates#form-gates-linking-a-form-to-a-qr-code)), each QR Code's own **User-Based Display Rule** setting — for example, hiding the form after someone has already seen or submitted it — is tracked independently per QR Code. A visitor completing or dismissing the form through one QR Code doesn't affect whether the same form still shows on a different QR Code, even though they share the same form. ## Related * [Analytics dashboard](/analytics/dashboard) — where Total Scans, Unique Scans, and the rest of your scan data live * [Bot scans](/analytics/bot-scans) — a different kind of scan-counting nuance: automated traffic, not real visitors * [Skip button & form gates](/forms/skip-button-and-gates) — setting up a password, age, lead, or form gate on a QR Code # Google login Source: https://docs.scanova.io/authentication/google-login Sign in to Scanova with a Google account, how it links to an existing Scanova login, and what happens if the email addresses do not happen to match up. Scanova lets you sign in or create an account using your Google account instead of a password. Google shows up in two places: as a **sign-in/registration option**, and as a way to **re-confirm your identity** for sensitive changes on accounts that don't have a password set. ## Signing in or registering with Google **Continue with Google** appears at the top of both the login page (`/auth/login`) and the registration page (`/auth/register`), above the email/password fields. Scanova login page with a Continue with Google button above an email field, a Continue button Scanova Create your account page with a Continue with Google button above a Work email field and a Continue button Selecting **Continue with Google** opens Google's standard account picker/consent flow. If you don't already have a Scanova account, one is created automatically using your Google account's email address; if you do, you're signed straight in. There's no separate "connect your Google account" toggle in Account settings — Google sign-in isn't something you link to an existing password-based account after the fact. It's either how you originally signed up or logged in, or it's used for the re-authentication described below. ## Re-authenticating with Google Certain sensitive actions — changing your MFA methods, changing your email, or deleting your account — ask you to confirm your identity first. If your account has a password, that confirmation is a password field. If your account has **no password** (because you signed up or have only ever signed in with Google), Scanova shows a **Continue with Google** button in its place, so you can confirm via Google instead of a password you never set. This applies in: * The [Manage MFA drawer](/authentication/multi-factor-authentication) — before adding, changing the default, or removing a method * The change-email flow in Account settings * The delete-account flow in Account settings ## Related * [Multi-factor authentication](/authentication/multi-factor-authentication) — where Google re-authentication appears for password-less accounts * [Single Sign-On](/authentication/sso) — a separate, organization-wide sign-in option distinct from an individual Google account # Multi-factor authentication Source: https://docs.scanova.io/authentication/multi-factor-authentication Add a second step to Scanova sign in, with an authenticator app or email codes, plus recovery codes to get back in if you ever lose your second factor. Multi-factor authentication (MFA) adds a second verification step to sign-in, on top of your password. Scanova supports three methods — **email one-time codes**, an **authenticator app** (TOTP), and **passkeys** — and all three live inside a single **Manage MFA** drawer. You can enable more than one method, pick a default, and generate backup codes in case you lose access to your usual method. MFA is only available for accounts that sign in with a password. If your organization signs in through [SSO](/authentication/sso), your identity provider handles authentication instead, and the MFA option doesn't appear in your account settings. ## Opening Manage MFA Go to **Account** (your avatar menu, or `/account`) and find the **Login & Security** section on the **Account** tab. The **Multi-Factor Authentication** field shows your current status (**Off**, or **On · \{method}**) with an edit icon that opens the drawer. Scanova account page showing the Login and Security section with Password and Multi-Factor Authentication fields ## Choosing a method The first time you open the drawer, you're asked how you'd like to get your verification code: Choose authentication method drawer with three options: Email (receive a one-time code on your registered email) * **Email** — a one-time code is sent to your registered email address at sign-in * **Authenticator App** — codes are generated by an app like Google Authenticator (any TOTP-compatible app works) * **Passkey** — your device's fingerprint, face unlock, or screen lock. See [Passkeys](/authentication/passkeys) for a dedicated walkthrough of this method. If your browser reports that your device supports a built-in (platform) authenticator, Passkey is listed first and flagged **Recommended for this device**. Whichever method you pick, you're first asked to re-enter your password to confirm it's you: Verify it's you step asking for your current password before setting up an authenticator app If your account has no password (for example, you only ever signed in with Google), this step shows a **Continue with Google** button instead, so you can confirm your identity that way. ## Setting up an authenticator app Enter your current password and select **Next**. Scan the QR Code with an app like Google Authenticator, or select the manual-entry key if you can't scan. Set up authenticator app step showing a QR Code to scan, app store badges for Google Authenticator Select **Next** once the account appears in your app. Your authenticator app now shows a 6-digit code that refreshes periodically. Enter it and select **Verify**. Enter verification code step with a six-digit one-time password input and a Verify button On success you're shown your [backup codes](#saving-backup-codes) — the app is now an active MFA method on your account. ## Email one-time codes Choosing **Email** skips the app-setup step: after the password check, Scanova sends a 6-digit code to your registered email address and shows the same OTP-entry screen, with a countdown before you can request another code. Enter verification code step for email MFA, showing an OTP sent successfully toast, a six-digit code input ## Passkeys Passkeys use your device's built-in biometrics or screen lock instead of a code. Setup and sign-in both work a little differently from the code-based methods above — see [Passkeys](/authentication/passkeys) for the full walkthrough. ## Adding another method Once you have at least one method enrolled, the drawer's main view lists it with a **Default** badge and a delete (trash) icon, and the footer button changes to **Add another method**: Multi-factor Authentication drawer showing Passkey enrolled with a Default badge, a trash icon to remove it Selecting **Add another method** re-opens the method picker — now only showing methods you haven't already enrolled, with copy adjusted to reflect that you already have MFA set up: Choose authentication method step showing Email and Authenticator App options If you enroll more than one method, each row gets a **Make default** button (unless it's already the default). Your default method is the one Scanova prompts for first at sign-in — you can still fall back to any other enrolled method or a backup code. To remove a method, select its trash icon, confirm your password (or re-authenticate with Google), and it's removed immediately. ## Saving backup codes After enrolling your first MFA method, Scanova generates a set of single-use recovery codes. Save them somewhere safe — each can be used once to sign in if you lose access to your regular MFA method, and they're never shown again after this step. Save your recovery codes step showing a grid of ten single-use backup codes ## Signing in with MFA Once MFA is enabled, signing in with your password takes you to a security-check screen for your default method instead of straight into your account. For example, with a passkey as the default: Security check screen reading 'Use your passkey to finish signing in' Check **Remember this device for 2 weeks** to skip the MFA challenge on that browser for the next two weeks. If you can't use your default method, select **Use backup code** to enter one of the recovery codes you saved earlier: Use backup code screen with a backup code input field, a Remember this device for 2 weeks checkbox, and a Verify button ## Related * [Passkeys](/authentication/passkeys) — a closer look at the passkey method * [Google login](/authentication/google-login) — how Google sign-in is used both for login and for re-confirming your identity on password-less accounts * [Password reset](/authentication/password-reset) — recovering access if you've forgotten your password (separate from MFA recovery codes) # Passkeys Source: https://docs.scanova.io/authentication/passkeys Sign in to Scanova with a passkey instead of a password, using the fingerprint, face, or device PIN your phone or laptop already uses to unlock itself. A passkey lets you complete sign-in with your device's fingerprint, face unlock, or screen lock instead of typing a code. It's one of three methods available inside the same **Manage MFA** drawer — alongside email one-time codes and an authenticator app. This page covers the passkey method specifically. For email and authenticator-app setup, how to set a default method, and backup codes, see [Multi-factor authentication](/authentication/multi-factor-authentication). ## Adding a passkey Open **Account** → **Login & Security** → the edit icon on **Multi-Factor Authentication**, then choose **Passkey** from the method list (it's listed first, flagged **Recommended for this device**, if your browser detects a built-in authenticator). Enter your current password to verify it's you before creating the passkey. Verify it's you step, with helper text asking to enter your password then follow your device's prompt to create Your browser opens its native passkey-creation dialog (Touch ID, Windows Hello, a security key, or your phone's screen lock, depending on your device and browser). This step happens outside the Scanova UI — it's controlled by your operating system or browser. Once your device confirms the passkey, Scanova asks you to give it a recognizable name (useful if you register passkeys from more than one device). Name this passkey step with a text field for the passkey name, placeholder 'e.g. My laptop', and a Save button Select **Save** to finish. You'll then see your [backup codes](/authentication/multi-factor-authentication#saving-backup-codes) if this is your first MFA method. ## Signing in with a passkey If a passkey is your default MFA method, signing in with your password takes you to a **Security check** screen prompting you to use it: Security check screen reading 'Use your passkey to finish signing in' Select **Sign in with your passkey** to trigger your device's native prompt. Check **Remember this device for 2 weeks** first if you don't want to repeat this step on the same browser for a while. If your passkey isn't available (different device, lost hardware key, and so on), select **Use backup code** to fall back to one of your saved recovery codes. ## Removing a passkey From the MFA status view, select the trash icon next to the passkey, confirm your password (or re-authenticate with Google on password-less accounts), and it's removed immediately. If it was your only MFA method, MFA is turned off for your account. ## Related * [Multi-factor authentication](/authentication/multi-factor-authentication) — the full MFA drawer, including email codes, authenticator apps, default methods, and backup codes * [Google login](/authentication/google-login) — how Google sign-in stands in for your password when your account has none set # Password reset Source: https://docs.scanova.io/authentication/password-reset Reset a forgotten Scanova password from the login screen, what the reset email contains, and what to do if that message never actually turns up for you. If you've forgotten your password, you can reset it from the login page using a one-time code sent to your email — no need to contact support. On the login page, select **Forgot password?** next to the password field. This takes you to `/auth/forgot-password`. Reset your password screen with an Email field, a Send code button, and a Back to sign in link Enter your account's email address and select **Send code**. Scanova emails a 6-digit one-time code to that address. Enter it on the next screen. Check your inbox screen confirming the code was sent, with a six-digit one-time password input If the code doesn't arrive, wait for the countdown next to the code field and select resend. Select **Verify Account** once you've entered the code. After the code is verified, you're taken to a final screen to choose and confirm a new password for your account. Resetting your password this way doesn't affect any [multi-factor authentication](/authentication/multi-factor-authentication) methods or [passkeys](/authentication/passkeys) on your account — those stay enrolled, and you'll still be asked for them at your next sign-in if enabled. ## A note on links vs. codes Scanova also has a separate, direct-link password reset route (`/auth/password/reset/confirm/…`) tied to a reset link rather than a typed code. The **Forgot password?** flow described above — email address, then a 6-digit code — is the one you'll reach from the login page. ## Related * [Multi-factor authentication](/authentication/multi-factor-authentication) — recovery codes for MFA are separate from this password-reset flow * [Google login](/authentication/google-login) — if you originally signed up with Google and have no password, use **Continue with Google** to sign in instead of resetting a password # Single Sign-On (SSO) Source: https://docs.scanova.io/authentication/sso Sign in to Scanova through your organisation's own identity provider, so access follows the accounts your IT team already manages centrally for everyone. Single Sign-On (SSO) lets your team sign in to Scanova through your organization's own identity provider (Okta, Azure AD, Google Workspace, and others via SAML or OIDC) instead of a Scanova-specific password. Setting up SSO for an organization is done by Scanova's team, not by customers themselves — there's no self-service SSO configuration screen in the app today. If you'd like SSO enabled for your organization, [contact support](https://support.scanova.io) with your identity provider details. This page covers the sign-in experience once that setup is complete. ## Signing in with SSO From the login page, select **Continue with SSO** (below the email/password form) to go to the SSO sign-in screen at `/auth/sso`. Single sign-on screen with a Work email or domain field, a Continue with SSO button Type the email address or domain your organization uses with Scanova (for example, `you@company.com`). Select **Continue with SSO**. Scanova redirects you to your organization's identity provider to complete authentication there. Once your identity provider confirms your identity, you're redirected back to Scanova and signed in. ## Accounts using SSO If your account signs in via SSO, a few things work differently elsewhere in Scanova: * **No password** — there's nothing to change under Account → Login & Security, since your identity provider handles authentication * **No MFA settings** — the [multi-factor authentication](/authentication/multi-factor-authentication) option is hidden entirely, since your identity provider is responsible for any additional verification it requires ## Related * [Multi-factor authentication](/authentication/multi-factor-authentication) — MFA setup for password-based accounts (not applicable to SSO accounts) * [Google login](/authentication/google-login) — a separate sign-in option, distinct from organization-wide SSO # Building a form Source: https://docs.scanova.io/forms/building-a-form How to create a form in Scanova: the six starting templates, all 16 question types, the block picker, and the General and Submit settings tabs in the builder. Forms let you collect information from the people who scan your QR Code or visit your landing page. You build a form the same way you build a landing page — a block-based canvas with a live mobile preview — but a form's canvas is limited to question blocks plus a header, a submit button, and an optional skip button. ## Navigating to Forms From the left sidebar, click **Forms**. This opens your forms list, showing every form's name, response count, linked QR Codes, and creation date. The sidebar also shows a **Lead Lists** item under Forms, tagged **Legacy**. Lead Lists is the deprecated predecessor to Forms — it still works, but new forms should use the Forms builder described here. ## Creating a form From the forms list, click **New Form** in the top right. Pick one of six templates: * **Blank form** — start from an empty canvas * **Contact form** — Full Name, Email, and Message * **Feedback survey** * **Customer satisfaction** * **Event registration** * **Lead capture** New Form template picker with six templates: Blank, Contact, Feedback, Satisfaction, Event, and Lead capture The Contact form template's three questions are **Full Name**, **Email**, and **Message** only — there is no phone field. If you need to collect a phone number, add a **Phone Number** question block yourself. Selecting a template opens the form builder immediately, with the template's blocks already on the canvas. Contact form template open in the form builder, showing its six blocks and a live mobile preview Every form — regardless of template — is built from the same six-slot shape: a **Form Header**, one or more question blocks, a **Submit Button**, and an optional **Skip Button**. See [Skip button & form gates](/forms/skip-button-and-gates) for how Skip actually works. ## Adding and reordering questions * Click **Add** above the BLOCKS list to open the question picker * Drag the handle on the left of any block in the BLOCKS list to reorder it * Click a block to select it and edit its Content/Design fields in the right panel * Select a block and click its trash icon to delete it The picker groups blocks into four tabs — **All**, **Actions**, **Questions**, and **Content** — and reports how many are still available to add (form-level blocks like Form Header, Submit Button, and Skip Button can only be added once each, so they drop out of the count once used). Add a block picker on the Questions tab, listing question types across All, Actions, Questions, and Content ## Question types The Questions tab offers 16 question types: | Type | When to use | | - | - | | **Short Answer** | Single-line text (name, city, code) | | **Paragraph** | Multi-line free text (feedback, comments) | | **Email** | Validated email address | | **Phone Number** | Phone number input | | **Number** | Numeric input with optional min/max | | **Multiple Choice** | Single selection from a list of options | | **Checkboxes** | Multiple selections from a list of options | | **Dropdown** | Selection from a dropdown menu | | **Linear Scale** | Rating on a numeric scale (e.g. 1–5) | | **Date** | Date picker | | **Time** | Time picker | | **Star Rating** | Rating using star icons | | **Emoji Rating** | Rating using emoji faces | | **Like / Dislike** | Thumbs up or thumbs down rating | | **File Upload** | Respondent uploads a file | | **Signature** | Digital signature pad | The **Content** tab has one additional non-question block, **Description** — a rich-text paragraph with formatting, links, and images, for adding instructions or context between questions. ## Form settings The right panel has two tabs at the form level: **General** and **Submit**. ### General | Setting | What it does | | - | - | | **Form name** | Internal label shown in the dashboard's forms list — not shown to respondents | ### Submit Configure **After submission** behavior (show a message or redirect to a URL) and a **Send responses to email** address for notifications. The Submit and Skip button labels are **not** set here. Select the button block on the canvas to change its label and style, and add or remove the Skip button from the block picker. There is no separate "Skip" tab in form settings. Skip is a canvas block, not a settings toggle — see [Skip button & form gates](/forms/skip-button-and-gates). ## Saving changes Changes auto-save as you edit — the header shows a live **Saving…**/**Saved** indicator. The primary header button reads **Create Form** before the form's first save, and updates to **Update Form** afterward. ## Linking a form to a QR Code A form only starts collecting responses once it's linked to a QR Code. Open the QR Code's **Settings** tab and turn on **Capture Leads**, then choose **Capture using Forms** and link your form. The [Skip button & form gates](/forms/skip-button-and-gates) page covers this flow — including the display style, timing, and expiry rules — in detail. ## Where to go next * [Skip button & form gates](/forms/skip-button-and-gates) — configuring the Skip button and how a linked form gates your landing page * [Viewing & exporting responses](/forms/responses) — the response viewer, analytics, and export ## Related * [Viewing & exporting responses](/forms/responses) — where a form's submissions end up once it's collecting data * [Skip button & form gates](/forms/skip-button-and-gates) — linking this form to a QR Code and configuring how it's gated * [Page Builder overview](/page-builder/overview) — the block-based landing page editor this form builder is modeled on # Viewing & exporting responses Source: https://docs.scanova.io/forms/responses How to read a form's responses in Scanova: the Overview analytics tab, the filterable response table, the linked QR Codes list, and exporting submissions. ## Opening a form's responses From the forms list, click a form's name (or its response count) to open the form's detail view. It has three tabs: **Overview**, **Responses**, and **Linked QR Codes**. ## Overview tab The Overview tab is an analytics dashboard for the form, scoped to a selectable date range (**7d** / **30d** / **90d** / **1y**): * **Total Entries**, **Completed**, **Skipped**, and **Completion Rate** stat cards, each with a period-over-period trend indicator * A **Responses over time** chart — daily submission count for the selected period * A **Responses by Source** breakdown The side panel also shows the form's ID, its public **Form URL**, total entries, number of linked QR Codes, and creation/modification dates, plus **Export** and **Edit Form** buttons. Form Overview tab showing entry, completion and skip stat cards, a responses-over-time chart, and sources ## Responses tab The Responses tab lists every submission for the form in a data table, with columns for: * **Submitted** — the response's submission date/time * **QR Code** — which linked QR Code the response came in through (or "Direct" if the form was filled without a QR Code in between) * **Response** — a truncated preview of the answers, or a **Skipped** badge if the respondent used the Skip button instead of submitting * Row actions — a button to view the full response in a detail sheet, and a dropdown to delete the response A **Search responses** box and a **Date** filter sit above the table. The Date filter opens a range calendar with quick presets (**Today**, **Yesterday**, **This Week**, **Last Week**, **This Month**, **Last Month**) plus a two-month calendar view, with **Clear** and **Apply** buttons, for narrowing the table to a specific window. Date filter with Today, Yesterday, This Week, Last Week, This Month and Last Month over a two-month calendar Before any responses have been collected, the table shows an empty state instead of column headers: Responses tab empty state reading No responses yet, before any submissions have come in Deleting a response asks for confirmation first ("This cannot be undone. The submission data will be permanently removed.") and immediately refreshes the table and the Overview tab's stat cards. ## Linked QR Codes tab This tab lists every QR Code currently configured to use the form, with each row showing the QR Code's name, ID, short URL, active/inactive status, and **Manage** / **Unlink** actions. A **Link QR Code** button lets you attach the form to another QR Code without leaving the responses view. Linked QR Codes tab showing a linked QR Code with its ID, short URL, status, and Manage and Unlink actions See [Skip button & form gates](/forms/skip-button-and-gates) for how a form actually gets linked to a QR Code, including display style and timing. ## Exporting responses Click **Export** (available from any tab, in the side panel) to trigger an export of the form's responses. The button shows an **Exporting…** state while the request is in flight. ## Where to go next * [Building a form](/forms/building-a-form) — templates, question types, and form settings * [Skip button & form gates](/forms/skip-button-and-gates) — linking a form to a QR Code and configuring how it's gated ## Related * [Building a form](/forms/building-a-form) — templates, question types, and form settings * [Skip button & form gates](/forms/skip-button-and-gates) — linking a form to a QR Code and configuring how it's gated * [Analytics dashboard](/analytics/dashboard) — scan-level analytics alongside this form-level Overview tab # Skip button & form gates Source: https://docs.scanova.io/forms/skip-button-and-gates How the Skip button works, and how to gate a landing page with a linked form: display style, display timing, expiry rules, and per-visitor display settings. ## The Skip button **Skip Button** is one of the non-question blocks available from the **Add a block** picker (alongside Form Header and Submit Button). Like those two, it can only be added once per form. * The **Contact form** template ships with a Skip Button block already on the canvas by default * The **Blank form** template does not include one — add it yourself from the block picker if you want it * To remove Skip entirely, select the block in the BLOCKS list and delete it, the same way you'd delete a question block Selecting the block shows its Content tab with three fields — **Button label** (default: "Skip"), **Icon**, and **Icon position** — plus a Design tab for styling it. Skip Button block selected in the form builder, showing its Button label field on the Content tab Respondents who tap Skip move past the form without submitting an answer — their attempt is recorded as **Skipped** in the [response viewer](/forms/responses) rather than counted as a completed response. ## Form gates: linking a form to a QR Code A form only starts collecting responses once it's linked to a QR Code, and that link is configured from the QR Code's own settings — not from the form builder. Open a QR Code and go to its **Settings** tab. Under **Tracking & Analytics**, turn on **Capture Leads**. Two options appear: **Capture using Forms** (marked *Recommended*) and **Use Existing Lead List** (marked deprecated, with a note suggesting migration to Forms). Capture Leads settings with Capture using Forms selected and Use Existing Lead List marked deprecated With **Capture using Forms** selected, click **Link Form…**. This opens the **Link Form** panel, where you choose which form to attach and how it's gated. Pick how the form appears over your landing page: * **Page Takeover** — the form replaces the whole page * **Modal Popup** — the form appears in a centered dialog over the page * **Slide-in Panel** — the form slides in from the edge of the screen **Modal Popup and Slide-in Panel need a Scanova Landing Page.** On a redirect-only QR Code — a Website URL Quick Code, for instance — both are disabled and only **Page Takeover** is available. The panel says so inline when it applies. Manage Form Settings panel with Page Takeover selected and Modal Popup and Slide-in Panel disabled Under **Display Timing**, choose **Show Immediately** (the form appears right after the QR Code is scanned) or **Time Delay** (show the form after a delay, in seconds). **Time Delay also needs a Scanova Landing Page**, since there is no page to delay on a redirect-only QR Code. It is disabled in that case, leaving **Show Immediately**. Expand **Advanced Settings** for three additional gates, each behind its own toggle: * **Form Expiry Rules** — stop showing the form to everyone once a limit is reached. Choose **Expiry by lead count** (a numeric threshold) or **Expiry by date & time**. * **User-Based Display Rule** — control repeat visibility per visitor (only one option can be active at a time) * **Match QR Code Theme** — show the form using the QR Code's own theme instead of a default style Advanced Settings showing Form Expiry Rules, User-Based Display Rule, and Match QR Code Theme toggles Click **Link Form** at the bottom of the panel. (Re-opening the link later shows the same options under the heading **Manage Form Settings**, with a **Save Changes** button.) The QR Code's **Capture Leads** section collapses back to show the link as **Active**, and the form's own **Linked QR Codes** tab (see [Viewing & exporting responses](/forms/responses)) lists the QR Code you just linked. A form can be linked to more than one QR Code. Manage all of a form's links from its own **Linked QR Codes** tab, or unlink a single QR Code from that QR Code's own **Capture Leads** settings. ## Where to go next * [Building a form](/forms/building-a-form) — templates, question types, and form settings * [Viewing & exporting responses](/forms/responses) — the response viewer, analytics, and export ## Related * [Building a form](/forms/building-a-form) — templates, question types, and form settings * [Viewing & exporting responses](/forms/responses) — where Skipped attempts and completed submissions show up * [Leads & lead lists](/leads/lead-lists) — the deprecated "Use Existing Lead List" alternative to Capture using Forms * [How scans are counted](/analytics/scan-counting) — how a form gate affects scan counting, and how User-Based Display Rule behaves when a form is linked to more than one QR Code # Dashboard overview Source: https://docs.scanova.io/getting-started/dashboard-overview A tour of the Scanova Overview dashboard: the scan chart, stat cards, top and least performing QR Codes, usage limits, and how the sidebar is organized. After logging in, you land on **Overview** (`/overview`) — a summary of your account's QR Code activity plus quick links into the rest of the app. Scanova Overview dashboard showing the scan chart, stat cards, top and least performing QR Codes, and usage limits ## What's on the dashboard The page greets you by name ("Good evening, \{name}") and is built from several panels: * **QR Code Scans** — a scan-trend chart with 7/14/30-day toggles, plus total scans and daily average * **QR Codes Created**, **Forms Created**, **Form Responses** — stat cards for the same date range, each with a trend indicator (e.g. "▲ 100% in the last 7 days") * **Top Performing QR Codes** / **Least Performing QR Codes** — your best- and worst-scanning codes for the selected period * **Usage & Limits** — your plan tier (e.g. "Pro") and consumption against its limits: number of QR Codes/pages, users, and custom domains — with **View Plan Details** and **Upgrade Plan** buttons * **Explore Advanced Features** — short pointers to features you may not have used yet, such as Tracking Parameters, AI-generated QR Code Design, and Conditional Redirection, each linking out via **View all** * **Recent Activity** — a running log of what's changed (e.g. "Website URL QR Code 'my-qr' created — by \{user}"), filterable by **All** / **QR Codes** / **Reports** * **Learn & Grow** — links into the Help Center on topics like QR Code analytics, customization, and printing ## The sidebar The left sidebar is where you navigate the rest of the app. It's split into two groups: **Platform** * **Overview** — this dashboard * **QR Codes** — every QR Code you've created, with a **Trash** for recently deleted ones * **Analytics** — scan-level reporting * **Forms** — standalone forms, plus a legacy **Lead List** view * **Bulk Operations** — batch workflows * **Integrations** — connect design, marketing, and automation tools such as Canva, Google Analytics, Zapier, and Slack to your QR Codes **Developer** * **API** — API keys and usage * **Documentation** — this documentation site, marked with an external-link icon The **Create QR Code** button sits at the top-right of the page header rather than in the sidebar, and it appears on **Overview** and **QR Codes** only. It's the fastest way into the QR Code creation hub described in [Creating your first QR Code](/getting-started/first-qr-code). From any other section, go to `/qr/create` directly. Below the main navigation are account-level links: **User Management** and **Settings**, plus **Refer & Earn** when your billing address is outside India. Your account name and email are shown at the very bottom, with a menu holding **Account**, **Subscription**, **Support**, **Book a Demo**, and **Log out**. ## The top bar Above the page content, the top bar has a sidebar-toggle button on the left, and on the right: a notification bell, a grid-style icon, a dark/light theme toggle, and a help icon. ## Where to go next * [Creating your first QR Code](/getting-started/first-qr-code) — a full walkthrough of publishing your first QR Code * [Quick Code vs. full Page](/qr-codes/create/quick-code-vs-page) — how to choose between a direct-action code and a landing page If you're building against the API instead of clicking through the dashboard, start with [Create QR Code](/api-reference/management-api/qr/create). ## Related * [What is Scanova?](/getting-started/what-is-scanova) — a platform-level overview of the sections summarized here * [Website URL QR Code](/qr-codes/create/website-url) — the simplest Quick Code type, a good next step from Overview * [Folders, tags & bulk operations](/qr-codes/manage/folders-tags-bulk-operations) — organizing the QR Codes that show up in Recent Activity and the QR Codes list # Creating your first QR Code Source: https://docs.scanova.io/getting-started/first-qr-code A complete walkthrough of your first Quick Code: Log In, pick the Website URL type, fill in the destination URL, and publish a scannable Dynamic QR Code. This walkthrough creates the simplest possible QR Code — a **Quick Code** that redirects to a website URL — from a fresh login to a published, scannable code. Go to your Scanova login page and Log In with your email and password (or Google/SSO). You land on the **Overview** dashboard at `/overview`. Click **Create QR Code** at the top-right of the page header. It appears on **Overview** and **QR Codes** only, so from any other section navigate to `/qr/create` instead. This hub presents three starting points as cards, left to right: Create QR Code hub with Quick Code, Build a Page, and AI Studio cards, plus drafts to continue editing * **Quick Code** — a direct QR Code for a URL, phone number, email, Wi-Fi, or plain text, with no landing page * **Build a Page** — the block-based landing page builder, starting from a template or blank canvas * **AI Studio** — describe a page and let AI generate it (see [AI QR / AI Studio](/qr-codes/create/ai-qr); this card shows **Upgrade** rather than **Start** on plans that don't include it) For this walkthrough, click **Start** on the **Quick Code** card. Quick Code opens a grid of direct-action types — **Website URL**, **Google Maps**, **App Store**, **App Deep Link**, and **GS1** support Dynamic QR Codes, while **Phone Call**, **Email**, **Text Message**, **Wi-Fi**, **Plain Text**, **Event Calendar**, and **Contact Card** are Static-only. Quick Code type picker with Dynamic types including Website URL and GS1, and a Static Only section Click **Configure** under **Website URL**. This opens the form at `/qr/quick/url`. Enter the destination address in the **URL** field (the `https://` prefix is fixed, so type just the rest, e.g. `example.com`). Website URL Quick Code form with the URL filled in, Dynamic selected, and an auto-generated short URL Leave **Dynamic** selected (it's the default and recommended) so the code stays editable and trackable after publishing. A **Short URL** slug is generated automatically — you can keep it or change it before publishing, since it can't be edited afterward. Click **Publish** in the top-right. A drawer opens with a live preview of the QR Code and an editable name — rename it here if you want something more specific than the default. Click **Publish** again in the drawer to confirm. A **Published** confirmation appears with the final QR Code, its short URL, and quick actions. Published QR Code drawer showing the code, a Live badge, its short URL, and download, copy, and share actions ## What you get The published code redirects instantly to the URL you entered — there's no landing page to design, since Quick Codes are direct-action. From the confirmation drawer you can download the QR Code image, copy or share its short URL, or open **Edit Design** to restyle the code's colors and frame. The code itself now appears in **QR Codes** in the sidebar, where you can search, tag, or move it into a folder. If you'd rather build a branded landing page instead of a direct redirect, see [Quick Code vs. full Page](/qr-codes/create/quick-code-vs-page) for how to choose, and the [Page Builder overview](/page-builder/overview) for the block-based editor. ## Creating one via the API You can create the same Website URL QR Code through the API using category ID `1` (labeled **Website URL**). See [Create QR Code](/api-reference/management-api/qr/create) for the full request schema. ## Related * [Website URL QR Code](/qr-codes/create/website-url) — a closer look at the Quick Code type used in this walkthrough * [Quick Code vs. full Page](/qr-codes/create/quick-code-vs-page) — how to choose between a direct-action code, a full Page, and AI Studio * [Folders, tags & bulk operations](/qr-codes/manage/folders-tags-bulk-operations) — what to do next: organize the QR Code you just published * [Dashboard overview](/getting-started/dashboard-overview) — a tour of the Overview page you land on after logging in # Is Scanova free? Source: https://docs.scanova.io/getting-started/is-scanova-free Scanova is a paid product with a 14-day free trial, plus a separate free generator on the website that makes Static QR Codes without an account at all. Scanova is a paid product, but there are two ways to use it without paying: a **14-day free trial** of the full dashboard, and a **free generator on the website** that makes Static QR Codes with no account at all. Which one you want depends on whether you need to change or track the QR Code after you've made it. ## The 14-day free trial Signing up gives you 14 days on the full dashboard, including up to **3 Dynamic QR Codes**. A Dynamic QR Code is the reason to take the trial. It resolves through Scanova, which means you can: * Change where it points after it's printed, without reprinting anything * See every scan in [Analytics](/analytics/dashboard) — when, where, and on what device * Apply [advanced settings](/qr-codes/manage/password-protection) such as password protection, scheduling, and conditional redirection Static QR Codes aren't restricted during the trial, so you can make those too. When the 14 days are up, your Dynamic QR Codes are deactivated but kept — see [When your trial or subscription ends](/billing/trial-and-expiry) for exactly what happens and how to bring them back. ## The free generator on scanova.io If all you need is a QR Code that points somewhere fixed, you don't need an account. The generator on [scanova.io](https://scanova.io) creates Static QR Codes for free: * No sign-up, and no time limit * Downloads as a PNG * Never expires, with no cap on scans * Plain black and white, with no logo, colors, or frames * The content is fixed at creation, so it can't be edited or tracked afterwards That last point is the trade-off. A Static QR Code stores its content inside the code itself, so nothing about it can change once it's printed. If the destination might ever move, or you want to know how many people scanned it, you need a Dynamic QR Code — see [Website URL QR Code](/qr-codes/create/website-url) for how the two differ in practice. Both kinds of QR Code are permanent in the sense that matters for printing: a Static QR Code works forever, and a Dynamic QR Code keeps working for as long as the subscription behind it is active. ## If you're in education Teachers, students, and educational institutions can apply for a [free plan](/billing/education-plan) by crediting Scanova on their site. It takes an application rather than a sign-up, so it's slower to start than the trial. ## Choosing between them | You want to | Use | | :- | :- | | Make a fixed QR Code once, for free | The free generator on [scanova.io](https://scanova.io) | | Change a destination after printing | A Dynamic QR Code — start with the trial | | Count and analyze scans | A Dynamic QR Code — start with the trial | | Design, brand, or add a logo to a QR Code | The dashboard — start with the trial | For what each paid plan includes, see [Plans and pricing](https://scanova.io/pricing). ## Related * [What is Scanova?](/getting-started/what-is-scanova) — what the platform does and how the dashboard is laid out * [Creating your first QR Code](/getting-started/first-qr-code) — the full creation flow once you have an account * [When your trial or subscription ends](/billing/trial-and-expiry) — what happens to your QR Codes when a trial or subscription lapses * [Plans and pricing](https://scanova.io/pricing) — what each plan costs and includes # What is Scanova? Source: https://docs.scanova.io/getting-started/what-is-scanova An overview of the Scanova platform: how Dynamic QR Codes, the page builder, forms, and scan analytics fit together, and where each one lives in the dashboard. ## Overview Scanova is a QR Code platform for creating, managing, and tracking QR Codes at scale. Every QR Code you create is one of two kinds: * A **Quick Code** — a direct-action QR Code that does something the instant it's scanned (opens a URL, dials a number, joins a Wi-Fi network) with no landing page involved * A **Page** — a QR Code that points to a landing page you build block-by-block (or generate with AI), for cases where scanning should show branded content rather than trigger an immediate action Once logged in, this is what you land on: Scanova dashboard showing scan trends, QR Codes created, top and least performing codes, and usage limits ## Who it's for Scanova's own login page describes it as "the QR Code platform trusted by enterprise teams to power campaigns, packaging and payments — with analytics built in," and lists logos including Walmart, Cisco, Nestlé, Toyota, AT\&T, and PepsiCo. In practice the app serves both self-serve users on a Pro Plan and larger organizations that need multiple team members, custom domains, and API access — every plan tier uses the same dashboard and QR Code creation flow, with higher tiers adding AI Studio, more custom domains, and more team seats. ## The main sections The dashboard's left sidebar is grouped into **Platform** and **Developer**: * **Overview** — the landing dashboard shown above: scan trends, top/least performing QR Codes, usage against your plan's limits, recent activity, and **Learn & Grow** links to help articles * **QR Codes** — the list of every QR Code you've created (Quick Codes and Pages alike), with search, filters, and a **Trash** for recently deleted codes * **Analytics** — scan-level reporting for your QR Codes * **Forms** — standalone forms you can build and link to QR Codes, separate from the page builder's own form blocks, plus a legacy **Lead List** view * **Bulk Operations** — batch creation/management workflows * **Integrations** — connect design, marketing, and automation tools such as Canva, Google Analytics, Zapier, and Slack to your QR Codes, and track the status of each connection * **API** and **Documentation** — a link to your API keys/usage and to this documentation site, under the **Developer** group Account-level areas sit below the main navigation: **User Management** and **Settings**. **Refer & Earn** also appears there when your billing address is outside India. ## Creating your first QR Code To go from zero to a working QR Code, see [Creating your first QR Code](/getting-started/first-qr-code). If you're integrating against the API instead of the dashboard, create QR Codes with the [Create QR Code](/api-reference/management-api/qr/create) endpoint. ## Related * [Creating your first QR Code](/getting-started/first-qr-code) — a full walkthrough of publishing your first QR Code * [Dashboard overview](/getting-started/dashboard-overview) — a closer look at the Overview page and sidebar described above * [Quick Code vs. full Page](/qr-codes/create/quick-code-vs-page) — the fundamental choice you make every time you create a QR Code * [Page Builder overview](/page-builder/overview) — the block-based editor behind every landing-page QR Code # Adobe Source: https://docs.scanova.io/integrations/adobe Generate and customise Scanova QR Codes inside Photoshop, InDesign, and Premiere Pro, so print and video artwork can carry a live code as you design it. The Adobe integration is a set of Scanova plugins for Adobe Creative Cloud apps, distributed through Adobe Exchange — not an OAuth connection. Nothing syncs back into Scanova; it lets you generate a QR Code without leaving your Adobe workflow. This is a **Design** category integration. It has no "Active connection" state and doesn't count against your integration connection quota — clicking through it in Scanova just opens the Adobe Exchange listing. ## Prerequisites * A Scanova account (any plan) * The Adobe Creative Cloud desktop app, with Photoshop, InDesign, or Premiere Pro installed ## Installing the plugin In the Scanova dashboard, go to **Integrations** in the left sidebar, click **Add Integration**, then filter to the **Design** category. Click **Setup** on the **Adobe Creative Cloud** card to open its setup panel. Click **Open in marketplace**. This opens a Scanova search on [Adobe Exchange](https://exchange.adobe.com/apps/browse/cc?listingType=plugins\&page=1\&product=All\&q=scanova\&sort=RELEVANCE) in a new tab. Scanova's Adobe Creative Cloud setup panel showing a description of the integration, a four-step 'How it works' list Alternatively, install directly from the desktop app: 1. Open the **Creative Cloud Desktop** app and select the **Stock & Marketplace** tab. 2. Click the **Plugins** tab. 3. Search for **Scanova** to view the full suite of plugins. 4. Click **Install** on the plugin for your workflow (for example, Scanova QR Codes for Photoshop). Open the installed plugin's panel from within Photoshop, InDesign, or Premiere Pro and sign in with your Scanova account to start generating QR Codes on the canvas or timeline. ## What it's for Use this when your design work happens in Adobe's apps — packaging layouts in InDesign, ad creative in Photoshop, video overlays in Premiere Pro — and you want a Scanova QR Code placed directly into that file rather than exported and re-imported as a static image. ## Related * [Canva](/integrations/canva) — the same design-time convenience, as a Canva app * [Google Docs](/integrations/google-docs) — the same design-time convenience, as an add-on for Docs, Slides, and Sheets * [Microsoft Office](/integrations/microsoft-office) — the same design-time convenience, as an add-in for Word, Excel, and PowerPoint # Canva Source: https://docs.scanova.io/integrations/canva Create and place Scanova QR Codes inside your Canva designs with the Scanova app, so artwork and its code stay together while you are still designing. The Canva integration is a Canva app — not an OAuth connection. It doesn't sync data back into Scanova; it lets you generate and drop a Scanova QR Code onto a Canva design without leaving Canva. This is a **Design** category integration. It has no "Active connection" state and doesn't count against your integration connection quota — clicking through it in Scanova just opens the app's marketplace listing. ## Prerequisites * A Scanova account (any plan — the catalog and setup panel are visible regardless of plan; only the data-sync integrations enforce a connection quota) * A Canva account with permission to install apps for the team you design in ## Installing the app In the Scanova dashboard, go to **Integrations** in the left sidebar, click **Add Integration**, then filter to the **Design** category. Click **Setup** on the **Canva** card to open its setup panel. Scanova Integrations catalog filtered to the Design category, showing four cards: Google Docs Add-on, Canva Click **Open in marketplace**. This opens Canva's official app listing in a new tab: [canva.com/apps/AAGuh5mzhTo/scanova-qr-codes](https://www.canva.com/apps/AAGuh5mzhTo/scanova-qr-codes?q=scanova). Scanova's Canva setup panel showing a description of the integration From the Canva listing, click **Use in a design** (or **Install app**, depending on where you land). Canva adds "Scanova QR Codes" to your apps. Open the app panel from inside any Canva design and sign in with your Scanova account. From there you can create a new QR Code or pick an existing one and place it on the canvas — no switching tabs. ## What it's for Use this when your workflow already lives in Canva — social posts, flyers, packaging mockups — and you want a live Scanova QR Code as part of the layout instead of pasting in a static image. It's a design-time convenience, not a way to view scan analytics; for that, open the QR Code in Scanova directly. Scanova also publishes a [Canva setup walkthrough](https://support.scanova.io/hc/en-us/articles/51478357817241-Integrate-with-Canva) in the Help Center, linked from the **Docs** tag on the Canva card in the catalog. ## Related * [Adobe](/integrations/adobe) — the same design-time convenience, as a plugin suite for Photoshop, InDesign, and Premiere Pro * [Google Docs](/integrations/google-docs) — the same design-time convenience, as an add-on for Docs, Slides, and Sheets * [Microsoft Office](/integrations/microsoft-office) — the same design-time convenience, as an add-in for Word, Excel, and PowerPoint # Google Ads Source: https://docs.scanova.io/integrations/google-ads Send scan data through to Google Ads so you can retarget the people who scanned your QR Codes, and measure the conversions that those scans eventually drive. Connect a Google Ads Conversion ID to a Dynamic QR Code and Scanova serves the Google Ads tag on every scan, so scans start counting as conversions in your Google Ads account — no code changes on your side. Google Ads is one of four "tracking ID" integrations that share the same setup form — Meta Pixel, Microsoft Ads, and LinkedIn work the same way. If you've connected one of those already, this page will feel familiar. ## How it works Google Ads is a client-side integration: Scanova never sends your scan data to Google's servers itself. Instead, when someone scans a QR Code that has this integration attached, they briefly land on an intermediate Scanova page before being redirected to your destination URL. That page loads Google's own conversion-tracking tag, which runs in the visitor's browser and reports the event directly to Google Ads. This has two practical consequences: * **Scanova can't confirm delivery.** Because the tag fires from the visitor's browser and never calls back to Scanova, a connection here shows as **Connected** or **Disconnected** only — not the active/inactive/awaiting states you'll see on server-side integrations like [webhooks](/integrations/webhooks). There's no "last synced" timestamp to check. * **Redirection timing matters.** If the destination redirect happens instantly, some mobile browsers and privacy-restricted browsers can block the tag before it finishes firing. Setup includes a **Redirection delay for tracking accuracy** toggle (on by default) to guard against this — see the advanced-settings step below. ## Prerequisites * At least one **Dynamic QR Code** with content already generated. The QR Code picker in setup only lists Dynamic QR Codes — Static QR Codes and Dynamic QR Codes with no content yet don't have a redirect step to attach a tag to, so they don't appear. * Your **Google Ads Conversion ID** — a 9- or 10-digit number, with or without the `AW-` prefix (e.g. `AW-123456789` or `123456789`). Find it in Google Ads under **Tools and Settings → Conversions**, or in Google Tag Manager's container settings if you manage tags that way. Use a [custom domain](/qr-codes/manage/custom-domains) for QR Codes you're tracking with ad pixels. Conversion cookies are scoped per domain, so scans redirected through Scanova's shared default domain can mix audiences across different Scanova customers running the same kind of campaign. A custom domain keeps your conversion data isolated to your own traffic. ## Connecting Google Ads Go to **Integrations** in the sidebar. If you already have other connections, select **Add Integration** to open the catalog; if the catalog is already showing, skip this. Find the **Google Ads** card under the **Marketing** category and select **Setup**. This opens a dedicated setup page (not a drawer) — Google Ads is one of the setup kinds that gets a full page instead of a side panel. In the **Enter Google Ads Conversion ID** field, paste your Conversion ID. Both `AW-123456789` and `123456789` are accepted; Scanova validates the format and shows an inline error if it doesn't match a valid Conversion ID before you can continue. A green tip below the field reinforces the custom-domain advice above: "Recommended: use a custom domain for reliable tracking. Cookies are stored per domain, so the default Scanova domain can mix audiences across campaigns." Under **Add tracking code to**, choose: * **Selected QR Codes** (the default) — pick specific Dynamic QR Codes from the searchable list that appears, or use its "select all" option to apply to your full current list * **All QR Codes** — applies the tag to every Dynamic QR Code on the account, present and future If you apply the tag to **All QR Codes** while a specific QR Code also has its own individual tracking-ID integration, only one of the two will actually fire — Scanova shows a note about this conflict when you pick **All QR Codes**: "Note: applying to All QR Codes while also integrating individual QR Codes can cause a conflict where only one tracking ID fires." Google Ads setup page with an Enter Google Ads Conversion ID field, a green tip about custom domains Open the **Advanced settings** section (open by default) to check **Redirection delay for tracking accuracy**. Leave it on unless you have a specific reason to redirect instantly — turning it off shows a warning that instant redirects can prevent the tag from firing on mobile or privacy-restricted browsers. Select **Connect Google Ads**. On success you're returned to the **Integrations** connections list, where the new row shows up immediately. ## Managing a connection Open any Google Ads row in the **Integrations** connections list to view its details — which QR Codes it's applied to, when it was created, and its **Connected**/**Disconnected** status. Select **Edit connection** to change the Conversion ID, scope, or redirection-delay setting; the same form pre-fills with the saved values. Deleting a connection (from the row's actions, or via bulk select) removes the tag from every QR Code it was applied to. Because this is a client-side tag, "Disconnected" only means Scanova has stopped serving the tag — it doesn't reflect anything about whether Google is receiving data, which Scanova has no visibility into either way. ## Related * [Meta Pixel](/integrations/meta-pixel) — the same tracking-ID setup form, for Facebook/Instagram conversions * [Microsoft Ads](/integrations/microsoft-ads) — the same tracking-ID setup form, for Microsoft Advertising's UET tag * [LinkedIn Ads](/integrations/linkedin) — the same tracking-ID setup form, for LinkedIn Campaign Manager # Google Analytics (GA4) Source: https://docs.scanova.io/integrations/google-analytics Send QR Code scan data into Google Analytics so that scans appear alongside your website traffic and can be analysed with the reports you already use. The Google Analytics integration sends your scan (or event-tracking) data to a Google Analytics 4 (GA4) property, so you can analyze QR Code engagement alongside the rest of your web/app analytics. Setup is a single form — Scanova doesn't sign in to your Google account directly; instead, you supply a GA4 Measurement ID and Measurement Protocol API secret that Scanova uses to send data server-side. ## Prerequisites * A GA4 property * The property's **Measurement ID** (format `G-XXXXXXXXXX`), found in GA4 under Admin → Data Streams → your stream * A **Measurement Protocol API secret** for that same data stream, created under Admin → Data Streams → your stream → Measurement Protocol API secrets ## Setting up the connection Google Analytics opens as its own full page, with a single setup form (no multi-step wizard). From **Integrations**, select **Add Integration**, then find the **Google Analytics** card and select **Setup**. Select **Scan Analytics Data** (the default) or **Event Tracking Data**, depending on what you want to appear in GA4. Enter the ID in `G-XXXXXXXXXX` format, copied from your GA4 property's data stream. Paste the Measurement Protocol API secret generated for that same data stream. Select **Connect Google Analytics**. The connection is created and marked active immediately. Editing an existing connection shows the saved Measurement ID but leaves the **Measurement API Secret** field blank — it isn't re-displayed for security, so you'll need to paste it again to save any change. This also means editing clears the connection's saved status so it's re-verified against GA4 on the next send, rather than continuing to show its previous status. ## What data flows where Scanova sends the selected data type (scan events or tracked events) to the GA4 property identified by your Measurement ID, authenticated with your Measurement API secret. Once connected, this data appears in your GA4 reports alongside your other web/app traffic. ## Related * [Google Ads](/integrations/google-ads) — another Google marketing integration, using a client-side conversion tag instead of the Measurement Protocol * [Meta Pixel](/integrations/meta-pixel) — the equivalent client-side tracking integration for Facebook/Instagram * [Webhooks](/integrations/webhooks) — a generic alternative for sending the same scan/event data to your own endpoint # Google Docs Source: https://docs.scanova.io/integrations/google-docs Create Scanova QR Codes directly inside Google Docs, Slides, and Sheets with the Scanova add-on, without leaving the document you happen to be writing. The Google Docs integration is the **Scanova QR Codes** add-on, distributed through Google Workspace Marketplace — not an OAuth connection. Nothing syncs back into Scanova; it lets you generate a QR Code without leaving Docs, Slides, or Sheets. This is a **Design** category integration, labeled "Google Docs Add-on" in the catalog since the same add-on works across Docs, Slides, and Sheets. It has no "Active connection" state and doesn't count against your integration connection quota — clicking through it in Scanova just opens the Workspace Marketplace listing. ## Prerequisites * A Scanova account (any plan) * A Google account with permission to install Workspace add-ons (in a managed workspace, an admin may need to approve it first) ## Installing the add-on In the Scanova dashboard, go to **Integrations** in the left sidebar, click **Add Integration**, then filter to the **Design** category. Click **Setup** on the **Google Docs Add-on** card to open its setup panel. Click **Open in marketplace**. This opens the add-on's [Google Workspace Marketplace listing](https://workspace.google.com/marketplace/app/scanova_qr_codes/831759720554) in a new tab. Scanova's Google Docs Add-on setup panel showing a description of the integration, a four-step 'How it works' list Alternatively, install it from inside any of the three apps: 1. Open Google Docs, Slides, or Sheets. 2. Go to **Extensions → Add-ons → Get add-ons**. 3. Search for **Scanova QR Codes** and click **Install**. 4. Open it from the **Extensions** menu. With the add-on open in the sidebar, sign in with your Scanova account, then create or insert a QR Code straight into the document, slide, or spreadsheet you're working on. ## What it's for Use this when a document, presentation, or spreadsheet is where the work already happens — a proposal, a slide deck, an inventory sheet — and you want a live Scanova QR Code embedded in it instead of pasting in a static image generated elsewhere. ## Related * [Canva](/integrations/canva) — the same design-time convenience, as a Canva app * [Adobe](/integrations/adobe) — the same design-time convenience, as a plugin suite for Photoshop, InDesign, and Premiere Pro * [Microsoft Office](/integrations/microsoft-office) — the same design-time convenience, as an add-in for Word, Excel, and PowerPoint # HubSpot Source: https://docs.scanova.io/integrations/hubspot Send QR Code form submissions and captured leads straight into HubSpot as contacts, companies, deals, or tickets, so sales can follow up without delay. The HubSpot integration connects your Scanova account to a HubSpot portal via OAuth, then walks you through a guided wizard that maps a form or QR Code's submissions to a HubSpot CRM object — Contact, Company, Deal, or Ticket — so every submission becomes a HubSpot record automatically. ## Prerequisites * A HubSpot account with permission to authorize new app connections for the portal * A Scanova plan that includes the HubSpot integration. Without it, connecting returns a "Your plan does not include HubSpot integration" error. * At least one Form-builder form or QR Code with a submission source (Custom Form, Feedback, RSVP, Real Estate inquiry, or Restaurant feedback) already set up, since the wizard needs something to sync from ## Setting up a connection HubSpot opens as its own full page (not a side panel), because the wizard needs the room. From **Integrations**, select **Add Integration**, then find the **HubSpot** card and select **Setup**. Select **Connect HubSpot**. You're redirected to HubSpot to authorize Scanova, then returned to the wizard. A green banner shows the connected portal ID once authorization succeeds. Pick the submission source type: **Forms** (any Form-builder form), **Custom Form Component**, **Feedback Form (Feedback QR Code)**, **RSVP Form Component**, **Inquiry Form (Real Estate QR Code)**, or **Feedback Form (Restaurant QR Code)**. Depending on the type chosen, search for and select the specific form or QR Code whose submissions should sync. Select which HubSpot object each submission should create: **Create Contact**, **Create Company**, **Create Deal**, or **Create Ticket**. Match your source's fields to HubSpot properties. HubSpot's featured properties for the chosen object are pre-listed; use **Add a field** to map additional properties from the full catalog. Incompatible mappings are blocked inline — for example, a HubSpot number property can't be mapped to a text field, and a date property can't be mapped to a non-date field. A mapping the wizard doesn't flag as invalid but that still can't be coerced to the HubSpot property's type is silently dropped at sync time rather than causing an error — the inline validation exists specifically to catch this before it happens. Name the connection (used later to identify it in Active Connections), review the mapping summary, and optionally select **Send test** to push one sample record to HubSpot and confirm it arrives before selecting **Complete setup**. ## Managing the connection * **Disconnect** (in the connected banner) stops syncing for the whole portal — every HubSpot connection tied to it stops sending data * Editing an existing connection from **Active Connections** reopens the same 5-step wizard, prefilled ## What data flows where Each time the configured form or QR Code receives a new submission, Scanova sends the mapped field values to HubSpot as a new record of the chosen object type (Contact, Company, Deal, or Ticket) in the connected portal. ## Related * [Slack](/integrations/slack) — another OAuth-connected integration with its own named-rule builder * [Webhooks](/integrations/webhooks) — a generic alternative if you need submission data somewhere HubSpot doesn't cover * [Form management](/api-reference/management-api/forms/list) — the API behind the Forms sources this wizard syncs from * [Lead list management](/api-reference/management-api/leads/list) — the API behind the legacy Lead List sync sources # LinkedIn Ads Source: https://docs.scanova.io/integrations/linkedin Add the LinkedIn Insight Tag to your QR Codes so that the people who scan them can be retargeted and measured through LinkedIn Campaign Manager later. Connect a LinkedIn Partner ID to a Dynamic QR Code and Scanova serves the LinkedIn Insight Tag on every scan, so scans start counting toward conversions and matched audiences in LinkedIn Campaign Manager. LinkedIn is one of four "tracking ID" integrations that share the same setup form — Google Ads, Meta Pixel, and Microsoft Ads work the same way. If you've connected one of those already, this page will feel familiar. ## How it works LinkedIn is a client-side integration: Scanova never sends your scan data to LinkedIn's servers itself. Instead, when someone scans a QR Code that has this integration attached, they briefly land on an intermediate Scanova page before being redirected to your destination URL. That page loads the LinkedIn Insight Tag, which runs in the visitor's browser and reports the event directly to LinkedIn. This has two practical consequences: * **Scanova can't confirm delivery.** Because the tag fires from the visitor's browser and never calls back to Scanova, a connection here shows as **Connected** or **Disconnected** only — not the active/inactive/awaiting states you'll see on server-side integrations like [webhooks](/integrations/webhooks). There's no "last synced" timestamp to check. * **Redirection timing matters.** If the destination redirect happens instantly, some mobile browsers and privacy-restricted browsers can block the tag before it finishes firing. Setup includes a **Redirection delay for tracking accuracy** toggle (on by default) to guard against this — see the advanced-settings step below. ## Prerequisites * At least one **Dynamic QR Code** with content already generated. The QR Code picker in setup only lists Dynamic QR Codes — Static QR Codes and Dynamic QR Codes with no content yet don't have a redirect step to attach a tag to, so they don't appear. * Your **LinkedIn Partner ID** — a 4- to 12-digit number. Find it in LinkedIn Campaign Manager under **Account Assets → Insight Tag**. Use a [custom domain](/qr-codes/manage/custom-domains) for QR Codes you're tracking with the LinkedIn Insight Tag. Conversion cookies are scoped per domain, so scans redirected through Scanova's shared default domain can mix audiences across different Scanova customers running the same kind of campaign. A custom domain keeps your conversion data isolated to your own traffic. ## Connecting LinkedIn Go to **Integrations** in the sidebar. If you already have other connections, select **Add Integration** to open the catalog; if the catalog is already showing, skip this. Find the **LinkedIn** card under the **Marketing** category and select **Setup**. This opens a dedicated setup page (not a drawer) — LinkedIn is one of the setup kinds that gets a full page instead of a side panel. In the **Enter LinkedIn Partner ID** field, paste your 4- to 12-digit Partner ID (placeholder shows a 6-digit example). Scanova validates the format and shows an inline error if it doesn't match a valid Partner ID before you can continue. A green tip below the field reinforces the custom-domain advice above. Under **Add tracking code to**, choose: * **Selected QR Codes** (the default) — pick specific Dynamic QR Codes from the searchable list that appears, or use its "select all" option to apply to your full current list * **All QR Codes** — applies the tag to every Dynamic QR Code on the account, present and future If you apply the tag to **All QR Codes** while a specific QR Code also has its own individual tracking-ID integration, only one of the two will actually fire — Scanova shows a note about this conflict when you pick **All QR Codes**. Open the **Advanced settings** section (open by default) to check **Redirection delay for tracking accuracy**. Leave it on unless you have a specific reason to redirect instantly — turning it off shows a warning that instant redirects can prevent the tag from firing on mobile or privacy-restricted browsers. Select **Connect LinkedIn**. On success you're returned to the **Integrations** connections list, where the new row shows up immediately. ## Managing a connection Open any LinkedIn row in the **Integrations** connections list to view its details — which QR Codes it's applied to, when it was created, and its **Connected**/**Disconnected** status. Select **Edit connection** to change the Partner ID, scope, or redirection-delay setting; the same form pre-fills with the saved values. Deleting a connection (from the row's actions, or via bulk select) removes the tag from every QR Code it was applied to. Because this is a client-side tag, "Disconnected" only means Scanova has stopped serving it — it doesn't reflect anything about whether LinkedIn is receiving events, which Scanova has no visibility into either way. ## Related * [Google Ads](/integrations/google-ads) — the same tracking-ID setup form, for Google Ads conversions * [Meta Pixel](/integrations/meta-pixel) — the same tracking-ID setup form, for Facebook/Instagram conversions * [Microsoft Ads](/integrations/microsoft-ads) — the same tracking-ID setup form, for Microsoft Advertising's UET tag # Meta Pixel Source: https://docs.scanova.io/integrations/meta-pixel Add the Meta Pixel to your QR Codes so that scans can be retargeted across Facebook and Instagram, and conversions reported back into Events Manager too. Connect a Meta Pixel ID to a Dynamic QR Code and Scanova serves the Meta Pixel on every scan, so scans start showing up as events in Meta Events Manager and can feed retargeting audiences and campaign optimization across Facebook and Instagram. Meta Pixel is one of four "tracking ID" integrations that share the same setup form — Google Ads, Microsoft Ads, and LinkedIn work the same way. If you've connected one of those already, this page will feel familiar. ## How it works Meta Pixel is a client-side integration: Scanova never sends your scan data to Meta's servers itself. Instead, when someone scans a QR Code that has this integration attached, they briefly land on an intermediate Scanova page before being redirected to your destination URL. That page loads the Meta Pixel script, which runs in the visitor's browser and reports the event directly to Meta. This has two practical consequences: * **Scanova can't confirm delivery.** Because the pixel fires from the visitor's browser and never calls back to Scanova, a connection here shows as **Connected** or **Disconnected** only — not the active/inactive/awaiting states you'll see on server-side integrations like [webhooks](/integrations/webhooks). There's no "last synced" timestamp to check. * **Redirection timing matters.** If the destination redirect happens instantly, some mobile browsers and privacy-restricted browsers can block the pixel before it finishes firing. Setup includes a **Redirection delay for tracking accuracy** toggle (on by default) to guard against this — see the advanced-settings step below. ## Prerequisites * At least one **Dynamic QR Code** with content already generated. The QR Code picker in setup only lists Dynamic QR Codes — Static QR Codes and Dynamic QR Codes with no content yet don't have a redirect step to attach a pixel to, so they don't appear. * Your **Meta Pixel ID** — a 15- or 16-digit number. Find it in [Meta Events Manager](https://business.facebook.com/events_manager2) under **Data Sources → your pixel → Settings**. Use a [custom domain](/qr-codes/manage/custom-domains) for QR Codes you're tracking with the Meta Pixel. Conversion cookies are scoped per domain, so scans redirected through Scanova's shared default domain can mix audiences across different Scanova customers running the same kind of campaign. A custom domain keeps your conversion data isolated to your own traffic. ## Connecting Meta Pixel Go to **Integrations** in the sidebar. If you already have other connections, select **Add Integration** to open the catalog; if the catalog is already showing, skip this. Find the **Meta Pixel** card under the **Marketing** category and select **Setup**. This opens a dedicated setup page (not a drawer) — Meta Pixel is one of the setup kinds that gets a full page instead of a side panel. In the **Enter Meta Pixel ID** field, paste your 15- or 16-digit Pixel ID. Scanova validates the format and shows an inline error if it doesn't match a valid Pixel ID before you can continue. A green tip below the field reinforces the custom-domain advice above. Under **Add tracking code to**, choose: * **Selected QR Codes** (the default) — pick specific Dynamic QR Codes from the searchable list that appears, or use its "select all" option to apply to your full current list * **All QR Codes** — applies the pixel to every Dynamic QR Code on the account, present and future If you apply the pixel to **All QR Codes** while a specific QR Code also has its own individual tracking-ID integration, only one of the two will actually fire — Scanova shows a note about this conflict when you pick **All QR Codes**. Open the **Advanced settings** section (open by default) to check **Redirection delay for tracking accuracy**. Leave it on unless you have a specific reason to redirect instantly — turning it off shows a warning that instant redirects can prevent the pixel from firing on mobile or privacy-restricted browsers. Select **Connect Meta Pixel**. On success you're returned to the **Integrations** connections list, where the new row shows up immediately. ## Managing a connection Open any Meta Pixel row in the **Integrations** connections list to view its details — which QR Codes it's applied to, when it was created, and its **Connected**/**Disconnected** status. Select **Edit connection** to change the Pixel ID, scope, or redirection-delay setting; the same form pre-fills with the saved values. Deleting a connection (from the row's actions, or via bulk select) removes the pixel from every QR Code it was applied to. Because this is a client-side pixel, "Disconnected" only means Scanova has stopped serving it — it doesn't reflect anything about whether Meta is receiving events, which Scanova has no visibility into either way. ## Related * [Google Ads](/integrations/google-ads) — the same tracking-ID setup form, for Google Ads conversions * [Microsoft Ads](/integrations/microsoft-ads) — the same tracking-ID setup form, for Microsoft Advertising's UET tag * [LinkedIn Ads](/integrations/linkedin) — the same tracking-ID setup form, for LinkedIn Campaign Manager # Microsoft Ads Source: https://docs.scanova.io/integrations/microsoft-ads Add the Microsoft Advertising UET tag to your QR Codes so that scans build remarketing audiences and report conversions inside Microsoft Advertising too. Connect a Microsoft Advertising UET (Universal Event Tracking) Tag ID to a Dynamic QR Code and Scanova serves the UET tag on every scan, so scans start counting toward conversions and remarketing audiences in Microsoft Ads. In the app, this integration is labeled **Microsoft Ads (UET)** — the "UET" refers to Microsoft Advertising's Universal Event Tracking tag, the same mechanism as a Google Ads or Meta pixel. It's one of four "tracking ID" integrations that share the same setup form — Google Ads, Meta Pixel, and LinkedIn work the same way. ## How it works Microsoft Ads (UET) is a client-side integration: Scanova never sends your scan data to Microsoft's servers itself. Instead, when someone scans a QR Code that has this integration attached, they briefly land on an intermediate Scanova page before being redirected to your destination URL. That page loads the UET tag, which runs in the visitor's browser and reports the event directly to Microsoft Advertising. This has two practical consequences: * **Scanova can't confirm delivery.** Because the tag fires from the visitor's browser and never calls back to Scanova, a connection here shows as **Connected** or **Disconnected** only — not the active/inactive/awaiting states you'll see on server-side integrations like [webhooks](/integrations/webhooks). There's no "last synced" timestamp to check. * **Redirection timing matters.** If the destination redirect happens instantly, some mobile browsers and privacy-restricted browsers can block the tag before it finishes firing. Setup includes a **Redirection delay for tracking accuracy** toggle (on by default) to guard against this — see the advanced-settings step below. ## Prerequisites * At least one **Dynamic QR Code** with content already generated. The QR Code picker in setup only lists Dynamic QR Codes — Static QR Codes and Dynamic QR Codes with no content yet don't have a redirect step to attach a tag to, so they don't appear. * Your **UET Tag ID** — a 6- to 16-digit number. Find it in Microsoft Advertising under **Tools → UET Tags**. Use a [custom domain](/qr-codes/manage/custom-domains) for QR Codes you're tracking with the UET tag. Conversion cookies are scoped per domain, so scans redirected through Scanova's shared default domain can mix audiences across different Scanova customers running the same kind of campaign. A custom domain keeps your conversion data isolated to your own traffic. ## Connecting Microsoft Ads Go to **Integrations** in the sidebar. If you already have other connections, select **Add Integration** to open the catalog; if the catalog is already showing, skip this. Find the **Microsoft Ads (UET)** card under the **Marketing** category and select **Setup**. This opens a dedicated setup page (not a drawer) — Microsoft Ads is one of the setup kinds that gets a full page instead of a side panel. In the **Enter UET Tag ID** field, paste your 6- to 16-digit UET Tag ID. Scanova validates the format and shows an inline error if it doesn't match a valid Tag ID before you can continue. A green tip below the field reinforces the custom-domain advice above. Under **Add tracking code to**, choose: * **Selected QR Codes** (the default) — pick specific Dynamic QR Codes from the searchable list that appears, or use its "select all" option to apply to your full current list * **All QR Codes** — applies the tag to every Dynamic QR Code on the account, present and future If you apply the tag to **All QR Codes** while a specific QR Code also has its own individual tracking-ID integration, only one of the two will actually fire — Scanova shows a note about this conflict when you pick **All QR Codes**. Open the **Advanced settings** section (open by default) to check **Redirection delay for tracking accuracy**. Leave it on unless you have a specific reason to redirect instantly — turning it off shows a warning that instant redirects can prevent the tag from firing on mobile or privacy-restricted browsers. Select **Connect Microsoft Ads (UET)**. On success you're returned to the **Integrations** connections list, where the new row shows up immediately. ## Managing a connection Open any Microsoft Ads row in the **Integrations** connections list to view its details — which QR Codes it's applied to, when it was created, and its **Connected**/**Disconnected** status. Select **Edit connection** to change the UET Tag ID, scope, or redirection-delay setting; the same form pre-fills with the saved values. Deleting a connection (from the row's actions, or via bulk select) removes the tag from every QR Code it was applied to. Because this is a client-side tag, "Disconnected" only means Scanova has stopped serving it — it doesn't reflect anything about whether Microsoft Advertising is receiving events, which Scanova has no visibility into either way. ## Related * [Google Ads](/integrations/google-ads) — the same tracking-ID setup form, for Google Ads conversions * [Meta Pixel](/integrations/meta-pixel) — the same tracking-ID setup form, for Facebook/Instagram conversions * [LinkedIn Ads](/integrations/linkedin) — the same tracking-ID setup form, for LinkedIn Campaign Manager # Microsoft Office Source: https://docs.scanova.io/integrations/microsoft-office Insert Scanova QR Codes into Word, PowerPoint, and Excel documents using the Scanova add-in, so office files can carry a live code without any exporting. The Microsoft Office integration is an Office add-in — not an OAuth connection. It doesn't sync data back into Scanova; it lets you generate and drop a Scanova QR Code into a Word, Excel, or PowerPoint document without leaving Office. This is a **Design** category integration, same shape as Canva, Google Docs, and Adobe. It has no "Active connection" state and doesn't count against your integration connection quota — clicking through it in Scanova just opens the add-in's marketplace listing. ## Prerequisites * A Scanova account (any plan — the catalog and setup panel are visible regardless of plan; only the data-sync integrations enforce a connection quota) * A Microsoft 365 account with permission to install add-ins for the Office apps you use ## Installing the add-in In the Scanova dashboard, go to **Integrations** in the left sidebar, click **Add Integration**, then filter to the **Design** category. Click **Setup** on the **Microsoft Office** card to open its setup panel. Click **Open in marketplace**. This opens the official listing on Microsoft's AppSource marketplace in a new tab: [marketplace.microsoft.com/en-us/product/office/WA200009911](https://marketplace.microsoft.com/en-us/product/office/WA200009911). Scanova's Microsoft Office setup panel showing a description of the integration Open Microsoft Word, Excel, or PowerPoint. Go to **Home → Add-ins → More Add-ins**, search for **"Scanova QR Codes"**, and click **Install**. Open the add-in from **Home → Scanova QR Codes**. Sign in with your Scanova account, then create a new QR Code or pick an existing one and insert it into your document — no switching apps. ## What it's for Use this when your document already lives in Word, Excel, or PowerPoint — a proposal, a report, a slide deck — and you want a live Scanova QR Code embedded in the layout instead of pasting in a static image. It's a document-authoring convenience, not a way to view scan analytics; for that, open the QR Code in Scanova directly. ## Related * [Canva](/integrations/canva) — the same design-time convenience, as a Canva app * [Adobe](/integrations/adobe) — the same design-time convenience, as a plugin suite for Photoshop, InDesign, and Premiere Pro * [Google Docs](/integrations/google-docs) — the same design-time convenience, as an add-on for Docs, Slides, and Sheets # Integrations overview Source: https://docs.scanova.io/integrations/overview The integrations catalogue: design tools that create QR Codes where you work, marketing tags that retarget scanners, and automation that moves your data. **Integrations** (`/integrations`) is where you manage every third-party connection on your account and browse the catalog of services you can add. Each individual integration has its own setup guide — see the list under **Related**, below — this page covers the shared list, catalog, and connection-management UI they all share. Scanova Integrations page showing Total, Active/Connected, Awaiting Data, and Inactive/Disconnected stat cards ## Your connections at a glance Four stat cards summarize your account's connections: * **Total** — every connection you've created, across all integrations * **Active / Connected** — connections currently working * **Awaiting Data** — connections that exist but haven't sent or received anything yet (for example, a webhook with no deliveries) * **Inactive / Disconnected** — connections that have been turned off or lost their authorization Below the cards, the connections table lists each one's **Application**, what it's **Integration With** (for example, a specific lead list or webhook name), **Status**, **Last Synced** timestamp, **Created By**, and **Created On**. Filter with the search box (by connection name) or the **Status**, **Application**, and **Created** filter buttons. Switch between the table and a card layout with the two icons above the top-right of the table (**List**/**Grid**). The grid view shows the same fields and Quick Actions as cards instead of rows. ## Quick Actions Each row (or card) has three Quick Actions: * **View** (eye icon) — opens a read-only summary: what it's integrated with, status, last synced time, delivery health, who created it and when, when it was last modified, and integration-specific fields (for example, a Google Analytics connection's Measurement ID and scope) View drawer for a Google Analytics connection showing Integration with, Status, Last synced, Delivery health * **Edit connection** (gear icon) — reopens that integration's setup form, prefilled with the saved configuration * **Delete** (trash icon) — removes the connection after a confirmation Select multiple rows with their checkboxes to reveal a floating toolbar with a bulk **Delete** action. Integrations table with both rows selected via checkboxes and a floating toolbar reading '2 selected' with a Delete ## Adding a new integration Select **Add Integration** to open the **Connect an Integration** catalog — every available service, grouped into **Design**, **Marketing**, and **Automation** categories (or **All** to see everything), with a search box to filter by name. Connect an Integration catalog showing All, Design, Marketing, and Automation category tabs, a search box Each card shows the integration's name, a one-line description, a **Setup** button to start (or add another) connection, and — for integrations with their own dedicated docs page — a **Docs** link that opens it. A card for an integration you already have connections for also shows a small checkmark badge with the count (for example, "✓ 1"). The **Design** category (Canva, Adobe, Google Docs, Microsoft Office) covers marketplace plugins with no data-sync connection — they don't show up in the stat cards or connections table above, since there's nothing to track. See each one's own page for details. ## Related * [Webhooks](/integrations/webhooks), [Slack](/integrations/slack), [Zapier](/integrations/zapier), [HubSpot](/integrations/hubspot) — Automation-category integrations * [Google Analytics (GA4)](/integrations/google-analytics), [Google Ads](/integrations/google-ads), [Microsoft Ads](/integrations/microsoft-ads), [Meta Pixel](/integrations/meta-pixel), [LinkedIn Ads](/integrations/linkedin) — Marketing-category integrations * [Canva](/integrations/canva), [Adobe](/integrations/adobe), [Google Docs](/integrations/google-docs), [Microsoft Office](/integrations/microsoft-office) — Design-category plugins * [MCP overview](/mcp/overview) — the AI-agent integration, listed in the same catalog under Automation # Slack Source: https://docs.scanova.io/integrations/slack Send scan notifications, lead alerts, and form responses into the Slack channels your team already watches, so nobody has to check the dashboard daily. The Slack integration connects a Slack workspace to your Scanova account via OAuth, then lets you build named **notification rules** — each one picking a set of events and the channel(s) that should hear about them. ## Prerequisites * A Slack workspace where you (or an admin) can authorize a new app * For **private channels**: the Scanova bot must be invited to the channel before it appears in the channel picker — public channels don't need this ## Connecting Slack From **Integrations**, select **Add Integration**, then find the **Slack** card and select **Setup**. Slack opens as its own full page. Select **Connect Slack**. A popup opens to Slack's own authorization screen — choose the workspace and authorize Scanova to post messages on your behalf. Scanova polls for the connection to complete; once it does, the popup closes and a "Slack workspace connected successfully" toast appears, along with a banner showing the connected workspace name. ## Creating a notification rule Once connected, select **Create rule** to start the 3-step rule builder. Give the rule a short, recognizable name. Select one or more of the following events: * Lead Captured * QR Code Scan * Form Responses * QR Code Created * QR Code Deleted * Page Created * Page Deleted * Shared User Added * Shared User Deleted * Custom Domain Added * Custom Domain Deleted If **Lead Captured** is selected, you must also choose at least one lead list to scope the rule to — otherwise every lead across the account would trigger it. Search and select one or more Slack channels to receive the notifications. Use **Sync channels** to pull a fresh channel list directly from Slack (useful right after connecting, or after creating a new channel in Slack itself). A private channel only shows up here after the Scanova bot has been added to it — see Slack's own [bot installation guide](https://docs.slack.dev/legacy/legacy-bot-users/#installing-bot) for how to add a bot to a channel. Select **Create rule** to save it. Rules appear in a list showing the rule name, a summary of its events, and the channels it posts to; each rule can be edited or deleted individually. Once the rule list grows past one page, a search box filters by rule name, event, or channel. ## Managing the connection **Disconnect** (in the connected banner) removes the workspace entirely — every notification rule for it stops sending, and rules/channels are cleared from the view. ## What data flows where When a matching event occurs — a scan, a lead capture, a form response, or one of the account-management events — Scanova posts a message to every channel configured on any rule that includes that event. ## Related * [HubSpot](/integrations/hubspot) — another OAuth-connected integration with its own guided setup wizard * [Webhooks](/integrations/webhooks) — a generic alternative for pushing the same events to your own endpoint instead of Slack * [Zapier](/integrations/zapier) — a broader automation option if you need to fan events out beyond Slack # Webhooks Source: https://docs.scanova.io/integrations/webhooks Push real-time Scanova events to your own server, so scans and lead captures reach your backend the moment that they happen rather than on a schedule. Webhooks are the generic option for getting Scanova data into your own systems: pick a data stream, give Scanova an endpoint URL, and it POSTs that data to your server in real time as events happen — no third-party app in between. ## Prerequisites * An HTTPS (or HTTP) endpoint that accepts `POST` requests and returns a 2xx status code to acknowledge delivery * If you plan to send lead data: at least one lead list or Form-builder form already set up as the source ## Setting up a webhook Webhooks open as their own full page (not a side panel). From **Integrations**, select **Add Integration**, then find the **Webhooks** card and select **Setup**. Select one of: * **Scan Analytics Data** — scan events for your QR Codes * **Event Tracking Data** — custom event-tracking data * **Lead List Data** — form or lead-list submissions If you chose **Lead List Data**, also select which lead list or Form-builder form the submissions should come from. Enter the full `https://` (or `http://`) URL Scanova should POST to. Select **Add another URL** to send the same payload to up to 5 endpoints total. Select **Create webhook**. Scanova starts POSTing matching events to every URL you configured as soon as they occur. Scanova POSTs event payloads to your endpoint in real time. Your endpoint should return a 2xx response to acknowledge delivery — a non-2xx response doesn't automatically retry. ## Editing an existing webhook Opening a webhook from **Active Connections** reopens the same form, prefilled. Because the read model only exposes one resolved URL per connection, editing shows a single URL field even if the original setup had more than one. ## What data flows where Depending on the data type chosen, Scanova sends scan events, event-tracking events, or lead/form submissions as a JSON payload to every configured endpoint URL, as soon as the underlying event occurs. ## Related * [Slack](/integrations/slack) — a similar event-driven integration, scoped specifically to Slack channels * [Zapier](/integrations/zapier) — routes the same kind of event data through Zapier's app catalog instead of a raw URL * [Google Analytics (GA4)](/integrations/google-analytics) — another server-side data-out integration for scan/event data * [Management API overview](/api-reference/management-api/overview) — pull the same data on your own schedule instead of receiving push events # Zapier Source: https://docs.scanova.io/integrations/zapier Connect Scanova to Zapier so that scans, leads, and form responses can trigger workflows in thousands of other apps without anyone having to write code. Zapier lets you wire Scanova into thousands of other apps — Google Sheets, Slack, HubSpot, and more — without writing code. On the Scanova side, connecting Zapier is a single step: generate a Management API token scoped to the `zapier` environment, then paste it into the Scanova app inside your Zapier account. From there, Zaps are built and managed entirely in Zapier. This integration is a **token handshake**, not a visual trigger/action builder inside Scanova itself. Everything you'd recognize as "Zapier setup" — choosing triggers, actions, and field mappings — happens on Zapier's platform, using its published Scanova app. Scanova's side only issues and revokes the token that app authenticates with. ## Prerequisites * A Zapier account * A Scanova plan that includes the Zapier integration quota (`INTEGRATION_ZAPIER`). If your token is rejected with a quota error, contact [support@scanova.io](mailto:support@scanova.io). ## Setting up the connection From **Integrations**, select **Add Integration**, then find the **Zapier** card and select **Setup**. This opens a setup panel — Zapier doesn't need a multi-step wizard, since there's nothing to configure on Scanova's side beyond the token itself. Select **Generate token**. Scanova creates a Management API key with `environment=zapier`, named `zapier_`. The token is shown once — copy it immediately using the copy icon next to the masked value. There's no way to reveal it again later; if you lose it, revoke it and generate a new one. Open the **Scanova** app inside your Zapier account and paste the token when prompted to authenticate. Create a Zap with a Scanova trigger — for example, a new scan or a new lead — then connect the destination app (Sheets, Slack, HubSpot, or anything else Zapier supports). Once the Zap is on, Scanova events start flowing to your chosen destination automatically. Revoking the token (**Revoke token** in the setup panel) immediately disables every trigger and action configured against it in Zapier — any live Zaps built on this connection stop working. ## How the token actually works The Zapier integration is built entirely on the Management API — there's no bespoke Zapier-specific backend. For the underlying request/auth mechanics (host, header format, and how the `environment=zapier` quota check and its required `User-Agent: zapier` header interact), see: How Management API tokens authenticate, including the `zapier` environment's quota and User-Agent requirements. ## What data flows where Once a Zap is live, Scanova pushes trigger events (such as new scans or new leads) to Zapier, which hands them to whatever action you've configured in the destination app. Zaps that call back into Scanova (for example, creating a QR Code from another app's event) use the same token against the regular Management API data endpoints. ## Related * [Management API overview](/api-reference/management-api/overview) — the raw-key auth scheme the `zapier` environment token authenticates against * [Creating & managing API keys](/api-keys/creating-and-managing-keys) — how the `environment=zapier` key handed to Zapier is generated * [MCP overview](/mcp/overview) — another integration built on a Management API key with its own dedicated environment # Downloading end-user & RSVP data Source: https://docs.scanova.io/leads/downloading-data Download the leads captured by your QR Codes as a spreadsheet, choosing the list and the time period, so the data can be worked with outside of Scanova. ## Two separate export mechanisms Scanova has **two separate export mechanisms** for two different kinds of data. They look similar (both are labeled "Export CSV") but behave differently and live in different places: 1. **Lead List export** — on a [Lead List](/leads/lead-lists)'s detail page, exports that list's captured contacts. 2. **Data Collected export** — on a QR Code's detail page, exports form/RSVP/feedback submissions collected through that QR's landing page. Don't confuse the two — a Lead List and a QR Code's linked Form are unrelated data sets, even if a QR Code happens to use both features. ## Lead List export (synchronous) On a Lead List's detail page (`/lead/[id]`, **Entries** tab), click **Export CSV**. Go to **Forms > Lead List** in the sidebar, then click into the list you want to export. On the **Entries** tab, click **Export CSV** in the top-right of the Responses table. The browser downloads a `.csv` file right away — there's no processing step. A **Download started** toast confirms it; if the request fails, you'll see a **Failed to export entries** toast instead. This is a direct, synchronous download: the button requests the file and saves it to your browser's downloads as soon as the response comes back — no waiting, no email. On free-plan accounts, Lead List entry export is capped at the first 25 responses. The **Analytics** tab on the same page has its own **Export Analytics** button, which downloads the aggregated entry counts and top-sources breakdown (not the raw entries) the same way — immediately, no email involved. ## Data Collected export (asynchronous, emailed) RSVP responses, custom form submissions, and restaurant feedback collected via a QR Code's landing page live on that QR Code's own detail page, under the **Data Collected** tab — a completely different screen from anything under Lead Lists. Go to **QR Codes**, open the QR Code whose submissions you want, and click the **Data Collected** tab. Dynamic QR Codes always show a **Form** sub-tab. QR Codes whose landing page includes an RSVP, feedback, or lead-list block additionally show **RSVP**, **Feedback**, or **Leads** sub-tabs. Select the one with the data you want. Click **Export CSV** above the responses table. QR Code detail page, Data Collected tab, showing a linked form and an Export CSV button above an empty responses table Unlike the Lead List export, nothing downloads immediately. A toast reads **"Your export is being prepared — you'll receive the download link shortly,"** and the file is generated in the background, then emailed to you as a download link once it's ready. This export is asynchronous by design — the file is built as a background job and the result is delivered by email, not streamed straight to your browser like the Lead List export above. If you click Export CSV and nothing appears in your downloads, that's expected: check your email instead. ## Which one do I need? | You want to export... | Use | | :- | :- | | Contacts captured by a legacy Lead List | The Lead List's **Entries** tab → **Export CSV** (instant download) | | Aggregated stats for a Lead List | The Lead List's **Analytics** tab → **Export Analytics** (instant download) | | Form responses, RSVPs, or feedback submitted through a QR Code's landing page | That QR Code's **Data Collected** tab → **Export CSV** (emailed link) | ## Related * [Leads & lead lists](/leads/lead-lists) — where the legacy Lead List entries described here come from * [Form responses](/forms/responses) — viewing Form submissions on the modern, non-legacy path * [Building a form](/forms/building-a-form) — set up the Forms whose Data Collected exports are covered above # Leads & lead lists Source: https://docs.scanova.io/leads/lead-lists Lead Lists are the deprecated predecessor to Forms. What they still do today, where to find them in the sidebar, and why new lead capture should use Forms. ## Lead Lists are a legacy feature The app displays this banner at the top of the Lead Lists page: > **Important Update** > Lead Lists have now been replaced by Forms — a more flexible and unified way to capture leads. > > You can still view and export your existing Lead Lists, but new lead collection setups should be created using Forms. If you're setting up lead collection for the first time, use [Forms](/forms/building-a-form) instead — this page only covers viewing, exporting, and migrating Lead Lists you already have. ## What a Lead List is A Lead List is the pre-Forms way of collecting visitor contact details (name, email, phone) through a QR Code's landing page. Each Lead List is a standalone collection of entries, optionally linked to one or more QR Codes so their scans can feed the same list. Scanova no longer exposes a way to create a new Lead List from the app — the **Lead List** entry in the sidebar (under **Forms**, tagged **Legacy**) only lets you manage and export lists that already exist on your account. New lead-collection setups go through Forms instead. Lead Lists page showing the legacy migration banner and an empty state reading 'No lead lists found' The screenshot above is a genuinely empty account. If your account has existing Lead Lists, they list in a table instead, with columns for **Name**, **QR Codes** (how many QR Codes feed this list), **Entries** (total captured contacts), **Status** (a **Converted** badge if the list has already been migrated to a Form), and **Created**. ## Opening a Lead List Go to **Forms > Lead List** in the sidebar, or navigate to `/lead`. Click a list's name to open its detail page at `/lead/[id]`. The detail page repeats the legacy warning, this time with a **Migrate to Form →** button that converts the list into a Form (see below), and two tabs: * **Entries** — the raw captured contacts: submission date, name, email, phone, and which QR Code the entry came from. This is also where you export the list's data — see [Downloading end-user & RSVP data](/leads/downloading-data) for how that export works. * **Analytics** — total entry count and a breakdown of entries by source QR Code, with its own **Export Analytics** button for the aggregated numbers ## Migrating a Lead List to a Form Click **Migrate to Form →** on a Lead List's detail page to convert it. This creates a new Form from the list and redirects you to it — a one-way move meant for accounts still relying on old Lead Lists that want the newer Forms feature set (conditional logic, email notifications, and analytics on the Form itself). ## Deleting a Lead List From the Lead Lists table, use the row's action menu and choose **Delete**. The confirmation dialog warns that this permanently removes the list **and all its entries** — there's no undo. ## Related * [Downloading end-user & RSVP data](/leads/downloading-data) — how exporting a Lead List's entries actually works * [Form responses](/forms/responses) — the modern, non-legacy way to view submissions once you've migrated to Forms * [Building a form](/forms/building-a-form) — set up a new Form instead of a Lead List for new lead-collection # Switching from Classic to New UI Source: https://docs.scanova.io/onboarding/classic-to-new-ui Switching between Classic and New Scanova is a one-way, account-wide, owner-only action, not a per-page choice. What changes, and what keeps working fine. ## What switching actually means "Classic" and "New Scanova" (this app) are Scanova's two full platforms — an older Angular app and this Next.js one — not two editors for the same landing page. `Preference.platform` is a single field on your account, and moving it is a decision for the **whole account**, not an individual QR Code: * **Only the account owner can switch.** A shared user (any non-owner role) sees a disabled **Switch to Classic** button in the sidebar footer, with a tooltip explaining that only the owner can move the whole account * **Switching moves everyone on the account together.** If you have shared users, they all move to Classic with you — there's no per-user opt-out * **It's a platform switch, not an editor toggle.** There is no per-QR-code or per-page "open in Classic" control anywhere in New Scanova ## Switching from New Scanova to Classic The control lives at the bottom of the sidebar: **Switch to Classic**. Selecting it (as the account owner) opens a confirmation dialog: Switch to Classic dialog warning that pages built in New Scanova cannot be edited in Classic The dialog's warning is the load-bearing fact on this whole page, quoted verbatim from the live app: > **\{N} landing page(s) on this account was/were built in New Scanova.** You won't be able to edit them in Classic, but they'll keep working normally and you can still download their QR Codes. This is not "your colors will need to be reapplied" — it's **you can no longer edit that page's content or design from Classic at all**. The page keeps serving live traffic normally; you simply lose the ability to open it in Classic's editor. If any teammates are on the account, a second line in the same dialog warns that they'll all move to Classic with you. Before confirming, the dialog optionally asks why you're leaving (missing something, something broken, performance, just exploring, or other) — answering is optional and doesn't block the switch. Confirming triggers a real, immediate, one-way account migration, with a hard redirect to the legacy app. There is no in-app undo. Once you confirm, your account is on Classic, and any page built in New Scanova is frozen there — visible in Classic's list but not editable — until (if ever) you switch back. ## Switching back from Classic to New Scanova This direction is **not self-service from within New Scanova** — there is no "Switch to New" control in this app, because you'd already have to be on Classic to need it. The only path is: a shared user on Classic can *request* that the account owner move the account to New Scanova; the account owner is the one who actually completes the move, from within Classic. ## What's preserved either direction | | Switching to Classic | | - | - | | QR Code image, short URL, and existing scans/analytics | Unaffected — the QR Code identity never changes | | Content of pages built in Classic | Fully editable in Classic, as always | | Content of pages built in **New Scanova** | Keeps working live, but becomes **read-only in Classic** — no further edits from Classic | ## Related * [Quick Code vs. full Page](/qr-codes/create/quick-code-vs-page) — what a "page built in New Scanova" actually is, and why it can't round-trip to Classic * [Support](/support/overview) — if you're unsure whether switching is right for your account, especially one with shared users, talk to support before confirming # First-run onboarding wizard Source: https://docs.scanova.io/onboarding/first-run-wizard The four-step wizard that new account owners see at /onboarding: choose a starting point, enter a URL, name and design your QR Code, then download it. The first time a new account owner logs in, Scanova redirects them into a 4-step wizard at `/onboarding` before they ever see the main dashboard — its whole purpose is to get one QR Code created before you're left to explore on your own. ## Who sees this, and why The wizard only applies to a genuinely new **account owner** — a teammate accepting a shared-user invitation trips the same underlying `first_login` flag on their first login too, but is deliberately exempted, since the wizard assumes permissions (like creating a QR Code) that a Viewer or other restricted role may not hold. A newly-invited teammate goes straight to the dashboard instead. If profile completion is still outstanding, that gate takes priority — the wizard only appears after your profile is complete. ## Step 1 — Choose The wizard opens on a personalized welcome ("Welcome, \{name}! Let's create your first QR Code.") with three starting points, matching the same three options available everywhere else in the app (see [Quick Code vs. full Page](/qr-codes/create/quick-code-vs-page)): Onboarding wizard step 1, Choose, with Website URL, Choose a Template, and AI Studio starting points * **Website URL** (under **Quick Code**) — a direct-action QR Code that opens a link when scanned * **Choose a Template** (labeled **Popular**) — a pre-designed page layout, such as Business Card or Custom Page * **AI Studio** (labeled **AI**) — describe what you need and let AI generate your page content automatically A top progress indicator (**1 Choose → 2 Create → 3 Configure → 4 Design & Finish**) tracks your position throughout, and a **Visit Dashboard** link in the top right lets you skip the wizard entirely at any point. ## Step 2 — Create Selecting a starting point opens its type-specific creation form. For **Website URL**, this asks for the destination URL, the **Short URL** that will front it, and whether to switch on **GPS location tracking**, with a live QR Code preview rendering on the right as you type: Onboarding wizard step 2, Create, with the website URL field, short URL, and GPS tracking toggle ## Step 3 — Configure Next, name the QR Code and optionally pick a design for it: Onboarding wizard step 3, Configure, naming the QR Code and picking an optional design * **QR Code name** — pre-filled with "My QR Code", so it is safe to leave alone * **Choose a design (optional)** — a gallery of ready-made QR Code styles, or skip it and style the code later from the dashboard Selecting **Create QR Code** shows a brief "Generating your QR Code…" state, then advances to the final step. ## Step 4 — Design & Finish The last step confirms success with a celebratory confetti animation and your finished, scannable QR Code: Onboarding wizard step 4, Design and Finish, with the finished QR Code and download options From here: * **Test your QR** — opens the destination in a new tab, the same way a scan would * **Download QR** — downloads the QR Code image * **Continue to plans** — the final action, which moves you into the main app An on-screen note reminds you that the design can be changed later from the dashboard. ## Related * [Quick Code vs. full Page](/qr-codes/create/quick-code-vs-page) — the same three starting points, available at any time from `/qr/create`, not just during onboarding * [Classic to New UI](/onboarding/classic-to-new-ui) — a separate, one-time account-level decision, unrelated to this wizard # Where everything moved in New Scanova Source: https://docs.scanova.io/onboarding/where-everything-moved A lookup for anyone moving over from Classic: where each of the 26 QR Code types now lives, what happened to Pages, and how landing pages are built now. New Scanova is a rebuild of the whole app, so a few things sit somewhere different. Nothing you have made has been deleted, and nothing behaves differently. Your QR Codes, landing pages, forms, scan history and analytics all came across untouched, and every live QR Code keeps resolving exactly as it did. This article is a lookup. If you are hunting for one specific thing, use your browser's find (Ctrl+F / ⌘F) and type what you used to call it. The old names are all in here.