Documentation

Set up WPNeedleFlow

From an empty WordPress site to taking your first online booking with a deposit. Most studios are running the same afternoon they install it.

Before you install

What your hosting needs

Nothing unusual, and nothing you have to buy. If your site runs a current WordPress on normal shared hosting, it will run this.

WhatMinimumWhat we run on
WordPress6.0 or newer6.6
PHP7.4 or newer8.1 or 8.2
DatabaseMySQL 5.7+ or MariaDB 10.3+Whatever your host gives you
HTTPSRequiredFree with most hosts
Outbound HTTPSYour site must be able to reach wpneedleflow.comFor the license and updates only
WordPress cronWorking, so reminders send on timeA real server cron is better on a quiet site
Memory128 MB256 MB is comfortable
HTTPS is not optional, for two reasons. Card payments require it, and so does the camera: scanning a driver’s license or a product barcode uses the device camera, and browsers refuse camera access on an insecure page. Almost every host now includes a free certificate.

No extras to buy

WooCommerce is not required

WPNeedleFlow is standalone. You do not need WooCommerce, a page builder, a membership plugin or a CRM. It works alongside them if you already have them.

Any theme

Built and tested on Divi 4

The booking widget and the Studio Panel are self-contained, so they inherit your site rather than fight it. If your theme does something unusual, tell us before you buy and we will look.

Not sure?

Send us your host name

Write to us with who hosts you and your PHP version — both are in WordPress under Tools → Site Health → Info — and we will tell you honestly whether it will run well.

Step one

Install and activate

WPNeedleFlow installs like any other WordPress plugin. You need a WordPress site on HTTPS — card payments and ID uploads require it.

Download the plugin

Sign in to your account here and download the zip from your licenses and downloads.

Upload it

In your site: Plugins → Add New → Upload Plugin → choose the zip → Install Now → Activate.

Enter your license key

Paste the key from your account. This is what turns on one-click updates. The plugin works without it, but it will not update itself.

Step two

First-run setup

A wizard walks you through the things nothing else can guess. You can change all of it later.

Your shop

Studio profile

Studio name, logo, phone, email and address. The name and logo appear on booking confirmations, gift cards, consent forms and receipts.

Where you work

Locations

Add each shop with its own address, phone, tax rate and time zone. Running one shop? Add it anyway — the booking widget hides the location step automatically when there is only one.

When you are open

Hours & closures

Studio default hours per location, then per-artist hours where they differ. Add holidays as closures so nobody can book them.

What you sell

Services & products

Each service gets a price, a duration in hours and minutes, a deposit, and whether it is tattoo or piercing. Products can carry variants, stock and a SKU.

Who does it

Artists

Add each artist with their discipline, hours and locations. Link them to a WordPress user if they need to log in and see their own book.

The rules

Booking settings

Slot interval, default duration, how far ahead people can book, how much notice you need, whether a deposit is required, and how long an unpaid hold lasts.

Do this before you take a booking

Make email actually arrive

WordPress sends mail through your web server by default, and confirmations sent that way land in spam or vanish silently — a booking nobody was told about is worse than no booking. Install an SMTP plugin and point it at a real mail service. FluentSMTP is the one to reach for: it is entirely free with no paid tier, and it logs every message at no cost, so when a client says they never got their confirmation you can look instead of guess. WP Mail SMTP is just as solid for sending, but its email log is a paid feature. Send yourself a test from the plugin before you go live.

Step three

Put it on your site

Everything customer-facing and staff-facing is a shortcode. Drop each one on a page — in Divi, a Code module works fine.

For customers

[xis_booking]

The booking widget. The setup wizard creates this page for you. Add [xis_booking_button] under an artist’s gallery to open the flow locked to that artist.

For customers

[xis_client_portal]

My Account for clients — appointments, cancel or reschedule, sign consent, update details and text consent.

For staff

[xis_calendar]

The Studio Panel: appointment book, inbox, register, clients, schedules, reports, forms and settings. Put this on a full-width page with no sidebar.

For staff

[xis_pos]

The register on its own page, if you want it separate from the panel — useful on a dedicated till machine.

For the door

[xis_checkin] and [xis_lobby]

A self check-in screen for a tablet by the door, and a waiting-room display showing who is up next.

For stock

[xis_scanner]

Turns a phone into a barcode scanner paired to the register. Optional — there is a built-in scanner page if you would rather not make one.

Divi theming: the Studio Panel and the register want the full width of the screen. Use a full-width page template, and turn on Make This Row Fullwidth in the row’s Design settings — a boxed row cannot be widened with CSS.

Money

Deposits and card payments

You connect your own Square or Stripe account. Payments go straight to you at your own processing rate — we never sit in the middle.

Either one

Square or Stripe

Enter your keys in settings and choose which gateway takes online deposits. Both can also charge a card on the device at the register. Your credentials come from Square’s Developer Console or Stripe’s API keys page.

Test first

Sandbox mode

Both gateways have a test mode — Square Sandbox and Stripe test cards. Run a booking and a sale end to end with test cards before you switch to live keys.

Stripe only

Add the webhook

Point a Stripe webhook at the address shown on the settings screen for the payment-succeeded event, and paste the signing secret back in. This is what rescues a payment where the customer’s browser closed mid-checkout.

Cash too

Drawer, tips and splits

Set your cash float per location and open a drawer at the start of a shift. Tips, split payments and refunds all reconcile into the Z-report at close.

Messaging

Text messages

Texts are optional. Without them everything still works and goes out by branded email instead.

Your account

Connect Twilio

Open a Twilio account, buy a sending number, then copy your Account SID and Auth Token from the Twilio Console into settings. You are billed by Twilio directly for what you send.

Do not skip this

Paste the reply webhook

Copy the inbound address shown on the settings screen into your Twilio number’s messaging webhook configuration. Without it, a customer replying STOP is not unsubscribed — and being able to honour STOP is a legal requirement, not a nicety.

Your words

Edit the templates

Confirmation, reminder, aftercare, review request, missed appointment and running-behind are all editable with merge tags, with a live preview and a real count of what each message will cost to send.

Proof

The notification log

Every message with its status, retries and errors. You can also have it clear finished entries automatically after a number of days.

Your team

Staff and access

Four tiers, enforced on the server. Nobody sees more than their role allows, whatever they type into the address bar.

RoleCan doCannot do
AdministratorEverything, including payment keys, license and destructive actions
ManagerAll appointments, clients, reports, products, services and the registerPayment keys, license, importing, deleting consent records
Front deskThe day’s book, check-in, all appointments, taking payment, the registerReports, products and services, settings
ArtistTheir own book and schedule, check-in and payment for their own clients, consentOther artists’ calendars, reports, settings, the client book
Staff PINs: give each person a four-digit PIN so the Studio Panel can lock itself when the desk is unattended and unlock for whoever is standing there. Any manager’s PIN also unlocks it.

Moving in

Importing from Booknetic

Administrators only. Nothing is emailed or texted to your customers during an import.

Export from Booknetic

Export customers and appointments as CSV.

Upload both files

The importer reads them and shows you what it found.

Map services and staff

Match theirs to yours, create the missing ones, or skip what you no longer offer.

Run the dry run

See exactly what will be created, reused and skipped before anything is written.

Import, then check

Spot-check a few appointments and clients. If it is wrong, roll the whole batch back and adjust your mapping.

Staying current

Updates and your license

One click

Normal WordPress updates

With your key entered, new versions appear on your Plugins and Updates screens like any other plugin.

Not seeing one?

Force a check

WordPress caches update information for hours. Dashboard → Updates → Check Again asks immediately.

Where you stand

The License panel

Administrators see the key, the days remaining and a renew button inside the Studio Panel settings — no need to go hunting through WordPress admin.

If it lapses

Nothing breaks

The plugin keeps running. You stop receiving updates and support until you renew. There is no lockout and nothing is deleted.

When something is off

Troubleshooting

In order of how often each one turns out to be the answer.

My change is not showing on the site

Caching, almost every time. Purge your host’s cache, then hard-refresh your browser. If you are on a host with a speed or optimiser plugin, clear that too. If it is a code change that will not take effect, deactivate and reactivate the plugin — some hosts hold the old copy in memory.

Buttons in the booking form or register do nothing

A speed plugin is combining or deferring JavaScript. Switch that option off, clear the cache and reload. This breaks the booking widget and the register specifically because they need their scripts to load in order.

The Studio Panel or register looks squashed

The page is using a boxed row. Set the page to a full-width template and the row to full width in your builder. No amount of custom CSS will widen a boxed row.

Deposits are not being taken

Check that a deposit is required in settings, that the service has a deposit amount, that your gateway keys are entered, and that you are on HTTPS. A $0 service deliberately skips the payment step.

Customers say they never got a reminder

Open the notification log. Every attempt is there with its status and any error. Common causes are texts not switched on, the customer never having agreed to texts, a customer who replied STOP, or WordPress’s scheduler not running on a quiet site — on a low-traffic site, set up a real cron job to hit wp-cron.php.

Confirmation emails are not arriving

Almost always WordPress mail, not the plugin. By default WordPress hands mail to your web server, which most inboxes do not trust, so it is filed as spam or dropped without a bounce. Install FluentSMTP or WP Mail SMTP, connect a real mail service, and send their test message. FluentSMTP logs every send for free, which tells you in one screen whether the message left your site at all — that single fact splits the problem in half.

An artist cannot see their appointments

Their WordPress user is probably not linked to their artist record. Open the artist on the Team screen and link the account. An unlinked account deliberately sees nothing rather than everything.

A time slot is offered that should not be

Check that artist’s hours for that location, their time off, and your closures. Hours are per artist and per location, so an artist can be open at one shop and closed at another on the same day.

One plugin. Your whole studio.

Everything included, for one flat annual license — unlimited staff and locations.