Title: IntoMetrics Booking &amp; CRM Light
Author: IntoMetrics
Published: <strong>June 21, 2026</strong>
Last modified: June 21, 2026

---

Search plugins

![](https://ps.w.org/intometrics-booking-crm-light/assets/banner-772x250.png?rev
=3580532)

![](https://ps.w.org/intometrics-booking-crm-light/assets/icon-256x256.png?rev=3580651)

# IntoMetrics Booking & CRM Light

 By [IntoMetrics](https://profiles.wordpress.org/intometrics/)

[Download](https://downloads.wordpress.org/plugin/intometrics-booking-crm-light.1.0.43.zip)

 * [Details](https://wordpress.org/plugins/intometrics-booking-crm-light/#description)
 * [Reviews](https://wordpress.org/plugins/intometrics-booking-crm-light/#reviews)
 *  [Installation](https://wordpress.org/plugins/intometrics-booking-crm-light/#installation)
 * [Development](https://wordpress.org/plugins/intometrics-booking-crm-light/#developers)

 [Support](https://wordpress.org/support/plugin/intometrics-booking-crm-light/)

## Description

**IM Form** is a complete booking and client management solution for WordPress —
purpose-built for service businesses such as clinics, salons, studios, law firms,
photography businesses, and consultancies.

Create polished multi-step booking forms, manage your leads in a built-in CRM, view
appointments on a visual calendar, track revenue and conversion rates, and automate
email/Slack notifications — all from your WordPress dashboard with no coding required.

**Core Features**

 * **Drag-and-drop Form Builder** — Build multi-step booking forms with service 
   selection, staff picker (card/list/dropdown styles), add-ons, date/time, and 
   custom fields
 * **Leads CRM** — Full client record with lead scoring (Hot/Warm/Cold), status 
   pipeline, payment tracking, and invoice generation
 * **Staff & Availability Management** — Per-staff working hours, day-off management,
   and automatic time-slot filtering based on who the client selects
 * **Visual Calendar** — Monthly calendar view of all appointments with click-to-
   view booking details
 * **Analytics Dashboard** — Charts for leads, bookings, and revenue; paid/unpaid
   breakdown; conversion rate tracking
 * **Shareable Booking Pages** — Generate a public booking URL for any form — no
   WordPress page required
 * **Email Confirmations** — Automatic HTML booking confirmation email sent to each
   client immediately after booking
 * **Pro: Integrations** — Google Sheets, Google Calendar, Slack, Zapier, HubSpot,
   and custom webhooks
 * **Pro: Automations** — Visual workflow builder for timed email sequences, Slack
   alerts, CRM updates, and more
 * **Pro: Payment Support** — Accept payments via Wise/Bank Transfer (with manual
   confirmation), PayMongo, and Stripe
 * **Tracking** — Google Analytics and Facebook Pixel event firing on form submission

**Display Styles for Staff**
 Choose between Dropdown, Card Grid (photo + name +
title), or List (photo + name + title rows) — all configurable per form in the form
builder.

**Add-ons**
 Attach optional add-ons to your services (e.g. “with props +$10”, “
home service +$159”). Add-ons can be restricted to specific services so customers
only see relevant options.

**Invoice PDF**
 Every lead in the CRM has a printable invoice page — open it and
click “Print / Save PDF” to generate a clean PDF invoice with your business branding,
client details, line items, and payment status.

### Third Party Libraries

This plugin includes the following bundled third-party libraries:

#### jsPDF

Used for generating PDF invoices.
 Version: 4.2.1 License: MIT Source: https://github.
com/parallax/jsPDF

#### Chart.js

Used for rendering analytics charts (leads, revenue, bookings) in the admin dashboard.

Version: 4.5.1 License: MIT Source: https://www.chartjs.org / https://github.com/
chartjs/Chart.js

#### IM PDF (custom)

A lightweight, self-contained pure-PHP PDF generator used for invoice generation.

No external dependencies. Built-in fonts only (Helvetica/PDF standard). License:
GPL-2.0-or-later (included with this plugin)

### External Services

This plugin connects to the following third-party services. Data is only transmitted
when the corresponding feature is explicitly enabled by the site administrator.

#### IntoMetrics License Server

Used for license key activation and deactivation, and automation workflow delivery(
when automation features are configured by the site admin).
 What is sent: license
key, site domain, plugin version, WordPress version, and PHP version (on activation/
deactivation only). Automation workflow definitions are fetched from the server (
no personal/client data is sent to IntoMetrics). When automations run, only the 
run status is logged back to the server. When: on license activation or deactivation;
when automation workflows are triggered by a booking (if configured by site admin).
Service: https://intometrics.com Privacy policy: https://intometrics.com/privacy-
policy/ Terms of use: https://intometrics.com/terms/

#### Google Analytics

Used to fire pageview and booking conversion events on your public booking pages.

What is sent: standard GA4 measurement data (page URL, event name) to Google’s servers.
When: only if a GA4 Measurement ID is entered in IM Form  Tracking. Service: https://
marketingplatform.google.com/about/analytics/ Privacy policy: https://policies.google.
com/privacy Terms of use: https://marketingplatform.google.com/about/analytics/terms/
us/

#### Facebook Pixel

Used to fire PageView and Lead events on your public booking pages.
 What is sent:
standard Pixel event data to Facebook’s servers. When: only if a Facebook Pixel 
ID is entered in IM Form  Tracking. Service: https://www.facebook.com/business/tools/
meta-pixel Privacy policy: https://www.facebook.com/privacy/policy/ Terms of use:
https://www.facebook.com/legal/terms/

#### Open Exchange Rates (open.er-api.com)

Used for currency conversion when PayMongo is enabled (PayMongo requires PHP — Philippine
Peso).
 What is sent: the source currency code only (e.g. “USD”). No personal data
is transmitted. When: only when a customer submits a booking form with PayMongo 
as the payment gateway and the site currency is not PHP. Service: https://www.exchangerate-
api.com/ Privacy policy: https://www.exchangerate-api.com/privacy Terms of use: 
https://www.exchangerate-api.com/terms

#### PayMongo

Used to create payment checkout sessions for accepting card payments.
 What is sent:
booking amount, currency, customer name and email (if provided), and success/cancel
redirect URLs. When: only when a customer submits a booking form with PayMongo configured
as the payment gateway. Service: https://www.paymongo.com/ Privacy policy: https://
www.paymongo.com/privacy Terms of use: https://www.paymongo.com/terms

#### Stripe

Used to create payment checkout sessions for accepting card payments.
 What is sent:
booking amount, currency, customer email (if provided), and success/cancel redirect
URLs. When: only when a customer submits a booking form with Stripe configured as
the payment gateway. Service: https://stripe.com/ Privacy policy: https://stripe.
com/privacy Terms of use: https://stripe.com/legal/end-users

#### Google Sheets

Used to append booking data to a connected Google Sheet.
 What is sent: customer
name, email, phone, service, date, time, staff, add-ons, and total amount. When:
only when this integration is enabled in IM Form  Integrations and a booking is 
submitted. Service: https://workspace.google.com/products/sheets/ Privacy policy:
https://policies.google.com/privacy Terms of use: https://workspace.google.com/terms/
service-terms/index.html

#### Google Calendar

Used to create calendar events for new appointments.
 What is sent: appointment 
details (title, date/time, description with client name and service). When: only
when this integration is enabled in IM Form  Integrations and a booking is submitted.
Service: https://calendar.google.com/ Privacy policy: https://policies.google.com/
privacy Terms of use: https://workspace.google.com/terms/service-terms/index.html

#### Slack

Used to send booking notification messages to a Slack channel.
 What is sent: customer
name, email, phone, service, date, time, and form name. When: only when this integration
is enabled in IM Form  Integrations and a booking is submitted. Service: https://
slack.com/ Privacy policy: https://slack.com/intl/en-us/trust/privacy/privacy-policy
Terms of use: https://slack.com/terms-of-service

#### Zapier

Used to trigger Zaps on booking submission.
 What is sent: full booking payload (
name, email, phone, service, date, time, staff, add-ons, total). When: only when
this integration is enabled in IM Form  Integrations and a booking is submitted.
Service: https://zapier.com/ Privacy policy: https://zapier.com/privacy Terms of
use: https://zapier.com/terms

#### HubSpot

Used to create or update contacts and deals in HubSpot CRM.
 What is sent: customer
name, email, phone, and booking amount. When: only when this integration is enabled
in IM Form  Integrations and a booking is submitted. Service: https://www.hubspot.
com/ Privacy policy: https://legal.hubspot.com/privacy-policy Terms of use: https://
legal.hubspot.com/terms-of-service

#### Trello

Used to create Trello cards for new bookings.
 What is sent: customer name, email,
phone, service, date, time, and add-ons. When: only when this integration is enabled
in IM Form  Integrations and a booking is submitted. Service: https://trello.com/
Privacy policy: https://www.atlassian.com/legal/privacy-policy Terms of use: https://
www.atlassian.com/legal/cloud-terms-of-service

#### Mailchimp

Used to subscribe booking customers to a Mailchimp audience.
 What is sent: customer
email address, first name, and last name. When: only when this integration is enabled
in IM Form  Integrations and a booking is submitted. Service: https://mailchimp.
com/ Privacy policy: https://mailchimp.com/legal/privacy/ Terms of use: https://
mailchimp.com/legal/terms/

#### Custom Webhooks

Used to POST booking data to any URL you configure.
 What is sent: full booking 
payload to the URL you specify — contents are under your control. When: only when
this integration is enabled in IM Form  Integrations and a booking is submitted.

### Privacy

IM Form stores booking data (client name, email, phone, service, appointment date/
time) in the local WordPress database only. This data is never automatically shared
with IntoMetrics or any third party.

Data is only transmitted to external services (Google Sheets, Slack, etc.) when 
the site administrator explicitly enables and configures those integrations.

Site administrators are responsible for their own compliance with applicable privacy
laws (GDPR, Philippine Data Privacy Act, etc.) when using this plugin to collect
client data.

The “Powered by IntoMetrics” attribution shown on Basic plan booking forms can be
removed by upgrading to the Pro plan.

## Screenshots

[⌊Multi-step booking form — service, staff cards, add-ons⌉⌊Multi-step booking form—
service, staff cards, add-ons⌉[

Multi-step booking form — service, staff cards, add-ons

[⌊Leads CRM with payment status and revenue amounts⌉⌊Leads CRM with payment status
and revenue amounts⌉[

Leads CRM with payment status and revenue amounts

## Installation

 1. Upload the `im-form` folder to `/wp-content/plugins/`
 2. Activate the plugin through **Plugins** in your WordPress dashboard
 3. Go to **IM Form  License** and enter your license key from [intometrics.com](https://intometrics.com/im-pricing/)
 4. Go to **IM Form  Services** and add your services, staff, and add-ons
 5. Go to **IM Form  Availability** and set your working hours
 6. Go to **IM Form  Forms**, create a form, and copy the shortcode
 7. Paste the shortcode on any WordPress page, or share the public booking URL directly

After activation, go to **Settings  Permalinks** and click **Save Changes** to flush
rewrite rules so shareable form URLs work correctly.

## FAQ

### Do I need a license key?

A license key is required to use IM Form. Get yours at [intometrics.com/im-pricing/](https://intometrics.com/im-pricing/).
Both Basic and Pro plans include a full set of core features; Pro adds integrations,
automations, and payment support.

### Can I use the form on multiple pages?

Yes. Use `[imform_booking]` on as many pages as you need. Each form you build has
its own unique shortcode and shareable URL.

### Does it work with any WordPress theme?

Yes. The booking form is fully self-contained with its own styles and does not depend
on theme CSS. The shareable public form pages bypass the theme entirely for a clean
experience.

### How do I accept payments?

Configure Wise/Bank Transfer in **IM Form  License Server Settings** for manual 
bank transfers, or connect PayMongo/Stripe. When a customer pays, update the lead
payment status in the CRM — the amount is preserved and reflected in the Analytics
revenue chart.

### How do staff time slots work?

When a client selects a staff member on the form, the calendar automatically filters
available time slots based on that staff member’s configured working hours and existing
bookings — preventing double-booking.

### Is my clients’ data safe?

All booking data is stored locally in your WordPress database. IM Form does not 
send client data to any external server unless you explicitly configure an integration(
Google Sheets, Slack, etc.).

### How do I generate an invoice?

In **IM Form  Leads CRM**, click any client name to open the preview panel, then
click **🧾 Invoice PDF**. The invoice opens in a new tab — click “Print / Save PDF”
to save it.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“IntoMetrics Booking & CRM Light” is open source software. The following people 
have contributed to this plugin.

Contributors

 *   [ IntoMetrics ](https://profiles.wordpress.org/intometrics/)

[Translate “IntoMetrics Booking & CRM Light” into your language.](https://translate.wordpress.org/projects/wp-plugins/intometrics-booking-crm-light)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/intometrics-booking-crm-light/),
check out the [SVN repository](https://plugins.svn.wordpress.org/intometrics-booking-crm-light/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/intometrics-booking-crm-light/)
by [RSS](https://plugins.trac.wordpress.org/log/intometrics-booking-crm-light/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.43

 * Moved `assets/im-logo.png` to a root-level `img/` folder; the `assets` folder
   has been removed since it no longer held any content

#### 1.0.42

 * Fixed “Don’t show again” on the SMTP setup notice leading to a blank page — the
   dismiss link’s admin-post action name (`imformlight_dismiss_smtp_notice`) didn’t
   match the registered handler (`im_dismiss_smtp_notice`), a leftover from the 
   prefix rename, so the request had nothing to fire and the notice never actually
   dismissed
 * Restructured asset folders: `assets/css` and `assets/js` moved to root-level `
   css/` and `js/`; `assets/img/im-logo.png` moved directly into `assets/`

#### 1.0.41

 * Removed the logo/icon from the “IM Form” item in the WP admin toolbar — now shows
   text only

#### 1.0.40

 * Added the same “IM Form Light / Upgrade to Pro” banner from the Docs page to 
   the Dashboard page
 * Other plugins’ and themes’ admin notices (SMTP nags, theme companion-plugin prompts,
   etc.) are now suppressed while viewing any of our own plugin pages, so the dashboard
   stays focused — our own license-change notice still shows when relevant

#### 1.0.39

 * Fixed “IM Form IM Form” duplicated text in the WP admin toolbar (logo icon’s 
   alt text was rendering as visible fallback text next to the adjacent label — 
   alt text is now empty since the icon is decorative)
 * Fixed the custom menu icon CSS selector left pointing at the pre-rename “im-dashboard”
   DOM ID after the prefix rename, which had silently broken the sidebar icon
 * Removed “Free” from the Docs page upgrade banner (“You are using IM Form Free(
   Light)”  “You are using IM Form Light”)

#### 1.0.38

 * WP.org compliance: renamed every short “im_”/”im-” prefixed function, option,
   AJAX action, nonce, menu slug, script/style handle, and JS global to the “imformlight_”/”
   imformlight-” prefix (previous prefix was under the required 4-character minimum)
 * WP.org compliance: removed “Free” from the plugin name (plugins on WordPress.
   org are inherently free)
 * WP.org compliance: public booking-availability endpoint no longer returns raw
   payment/booking-status strings — only a minimal “paid” boolean needed by the 
   calendar UI
 * WP.org compliance: that same endpoint’s nonce check is now actually enforced (
   was passing a soft-fail flag that let it through even when missing/invalid)
 * WP.org compliance: added capability checks to admin-only AJAX endpoints that 
   previously relied on the nonce alone (leads list, CSV export, calendar data, 
   form entries)
 * WP.org compliance: added missing phpcs:ignore justifications for the few remaining
   standalone-page inline tags
 * Added a one-time migration so existing installs keep their settings when upgrading
   from the old “im_” option names to the new “imformlight_” names

#### 1.0.37

 * WP.org compliance: removed remote kill switch, remote automation fetch, and unauthenticated
   AJAX endpoint
 * WP.org compliance: all features now work without a license key (license page 
   is optional account linking)
 * WP.org compliance: fixed phpcs:ignore placement for script/style tags (must be
   on same line as violation)
 * WP.org compliance: added wp_unslash() to REQUEST_URI usage in license.php
 * WP.org compliance: added reasons to all phpcs:ignore comments
 * WP.org compliance: replaced extract() with explicit variable assignments in public-
   form-page.php
 * WP.org compliance: added phpcs:ignore reasons to all direct database queries
 * Added built-in admin notification email on new booking (replaces removed automation
   system)
 * Added uninstall.php for clean plugin removal
 * Added load_plugin_textdomain() for i18n support
 * Added Domain Path, Requires at least, and Tested up to to plugin header
 * Documented Chart.js and IM PDF in Third Party Libraries section of readme.txt
 * Fixed jsPDF library documentation (v4.2.1)
 * Removed dead fpdf.php placeholder file
 * Fixed “Tested up to” version (was incorrectly 7.0, corrected to 6.7)
 * Multiple embedded form layout fixes (sidebar stacking, container queries, calendar
   popup)
 * Time slot staggered animation on date selection
 * Collapsible sidebar button moved to bottom

#### 1.0.37

 * Fixed admin layout broken by overflow:hidden leaking from form-builder CSS into
   admin.css
 * Fixed plugin icon rendering as oversized image in WP sidebar (now uses CSS background-
   image)
 * Fixed header white gap — header now correctly positioned inside .wrap container
 * Replaced plugin logo with custom branded icon
 * Removed remote brand sync that was overwriting the plugin logo
 * Bumped version to force cache-bust of all enqueued CSS/JS assets

#### 1.0.30

 * Removed all remaining custom CSS/JS/PHP injection features completely
 * Extracted standalone preview page CSS to im-preview.css (static), minimal dynamic-
   only inline style remains
 * Removed all custom_css (im_form_custom_css) references from plugin code
 * All admin view inline styles migrated to admin.css via wp_add_inline_style
 * All admin view inline scripts migrated via wp_add_inline_script / ob_start pattern
 * All client-side booking form styles migrated via wp_add_inline_style
 * All client-side booking form scripts migrated via wp_add_inline_script
 * Updated jsPDF from 4.2.1 to 4.2.1
 * Added complete External Services section to readme.txt

#### 1.0.29

 * Removed arbitrary custom head/footer code injection fields (WP.org guideline 
   compliance) — use a dedicated tag manager plugin instead
 * Updated bundled jsPDF library from 4.2.1 to 4.2.1
 * Added External Services documentation to readme.txt disclosing all third-party
   API connections
 * Moved all admin page inline blocks to the enqueued admin.css stylesheet
 * Converted all admin page inline blocks to use wp_add_inline_script()
 * Cleaned up legacy im_custom_head_code and im_custom_footer_code options on upgrade

#### 1.6.21

 * Amount confirmed on booking now shown in Leads CRM payment column
 * Currency pulled from site settings (no more hardcoded symbols)
 * Revenue totals preserved on lead edit — updating payment status no longer zeros
   the amount
 * Analytics: Revenue & Paid Bookings chart (last 30 days)
 * Invoice PDF page for every CRM lead

#### 1.5.4

 * Booking confirmation email sent to customer after every successful booking
 * Lead edit modal now pre-populates all fields including payment status and gateway
 * Fixed payment status not saving on lead edit
 * Total amount field added to lead edit modal

#### 1.5.3

 * Google Analytics enqueue compliance fix (WordPress Plugin Check)

#### 1.5.2

 * Integrations and Automations promo pages added to admin menu
 * Pricing page link corrected

#### 1.5.1

 * Fixed fatal error: missing class closing brace in booking form (caused by sync_to_gcal
   removal)
 * Fixed Segoe UI apostrophe parse error in email template

#### 1.5.0

 * Fixed plugin activation fatal (orphan closing brace)

#### 1.4.9

 * Removed duplicate JS function in license page

#### 1.4.8

 * Fixed unescaped apostrophe in booking confirmation email causing PHP fatal

#### 1.4.7

 * Integrations and Automations admin tabs (upgrade promo pages)

#### 1.4.6

 * Removed dead code: intercept_public_form_request, add_form_query_var, sync_to_gcal
 * Removed debug comment exposing PayMongo internals

#### 1.4.5

 * Booking confirmation email to customer after successful booking

#### 1.4.4

 * Fixed form builder field properties panel freezing on second field click
 * Added booking summary email on successful booking

#### 1.4.3

 * Fixed field properties panel auto-populating on field switch in form builder

#### 1.4.2

 * WordPress Plugin Check compliance: escaped outputs, wp_unslash, nonce comments
 * Google Analytics loaded via wp_enqueue_script/wp_add_inline_script

#### 1.4.1

 * Share page bottom padding fix (moved trust badges and footer outside body div)

#### 1.4.0

 * Fixed bottom padding on share page

#### 1.3.9

 * Share page trust badge and footer spacing

#### 1.3.8

 * Add-on card redesign: icon top-left, checkbox top-right, price bottom-right

#### 1.3.7

 * Staff photos enlarged: 96px cards, 72px list, 44px dropdown

#### 1.3.6

 * Homepage button on booking confirmation links to installed site domain
 * HOME_URL JS variable from WordPress home_url()

#### 1.3.5

 * Share page form centering fixed
 * Tabs (imfv3-tabs) increased in size

#### 1.3.4

 * Share page sticky header and form centering
 * filterAddons null error fix

#### 1.3.3

 * Fixed orphan brace causing PHP fatal (cascaded from addon block restructuring)

#### 1.3.2

 * Replaced color-mix() CSS with safe equivalents for server compatibility

#### 1.3.1

 * Share page redesigned: sticky header bar, clean card layout, proper CSS/JS loading
 * Staff and addon card borders: transparent by default, visible only on hover/selected

#### 1.3.0

 * Staff and add-on fields now collapsed behind a trigger (“Select a staff member…”)
 * imfv3ToggleAsnPanel_ and imfv3ToggleAddonPanel_ functions added

#### 1.2.9

 * Share page 500 error fixed (removed ob_start/ob_get_clean complexity)
 * Add-on card grid trigger added

#### 1.2.8

 * Share page variable name fix ($business_name vs $biz_name)

#### 1.2.7

 * Share page double ob_start conflict fixed

#### 1.2.6

 * Fixed critical error from staff/addon PHP block restructuring (services.php $
   services  $svcs)

#### 1.2.5

 * Staff and addon filtering by selected service
 * Addon services assignment in admin (Show only for Services)
 * Display style not reflecting fixed (display_style added to field save whitelist)

#### 1.2.4

 * Fixed display_style being stripped on form save (missing from field save whitelist)

#### 1.2.3

 * Staff display style option in form builder (Dropdown / Cards / List)
 * Larger staff photo sizes across all display modes

#### 1.2.2

 * Plugin URI and Author URI must be different (WordPress Plugin Check)

#### 1.2.1

 * External services disclosure in readme
 * “Powered by IntoMetrics” on landing page gated behind non-Pro check

#### 1.2.0

 * Sale pricing: per-plan enable toggle, % or fixed discount
 * Sale price shown on checkout and license page with strikethrough

#### 1.1.9

 * phpcs:ignore inline on the same line as $data = (server-to-server AJAX)

#### 1.1.8

 * WordPress Plugin Check compliance fixes: absint(), esc_html(), wp_unslash()

#### 1.1.0

 * Staff display style option in form builder
 * Add-on card grid display
 * Public share page redesign

#### 1.0.28

 * Initial release

## Meta

 *  Version **1.0.43**
 *  Last updated **9 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.9 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [appointment](https://wordpress.org/plugins/tags/appointment/)[booking](https://wordpress.org/plugins/tags/booking/)
   [calendar](https://wordpress.org/plugins/tags/calendar/)[crm](https://wordpress.org/plugins/tags/crm/)
   [forms](https://wordpress.org/plugins/tags/forms/)
 *  [Advanced View](https://wordpress.org/plugins/intometrics-booking-crm-light/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/intometrics-booking-crm-light/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/intometrics-booking-crm-light/reviews/)

## Contributors

 *   [ IntoMetrics ](https://profiles.wordpress.org/intometrics/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/intometrics-booking-crm-light/)