Sales & Visit History
The most important data import — your actual appointment and invoice records. This is what drives every financial calculation in Nabu.
Why this is the most important section
Sales & Visit History is the core dataset that powers Nabu. Everything else — business costs, people, services — provides context. But the actual sales records are the evidence of what happened in your business: who came in, what they received, what they paid, and who performed the service.
Without sales history, Nabu has no financial data to analyze. With it, you get:
- Revenue by date, service, provider, and client
- Profitability calculations based on real appointment activity
- Client visit frequency and lifetime value
- Provider performance metrics
- Forecasting based on actual historical trends
What is a "sale" in Nabu?
In Nabu, a sale is any transaction or appointment. One sale is one line item — one service performed, or one product sold. An invoice with three items on it is three separate sales records.
Each sale has:
| Data | Description |
|---|---|
| Date | When the appointment or transaction happened |
| Client | Who received the service or made the purchase |
| Item type | What kind of transaction (service, membership, package, retail, gift card, etc.) |
| Service or item name | What was performed or sold |
| Provider | Who delivered the service (identified by email) |
| Amount paid | What the client paid in cash/card |
| Benefit/discount applied | Any membership credits, package sessions, or discounts applied |
| Status | Whether the appointment was completed, cancelled, no-showed, etc. |
Item types explained
Nabu uses specific item types to categorize each sale:
| Item Type | Meaning |
|---|---|
SERVICE | A service was performed (facial, injection, laser treatment, etc.) |
RETAIL_PRODUCT | A product was sold (skincare, supplements, etc.) |
MEMBERSHIP_SALE | A client purchased or renewed a membership |
MEMBERSHIP_REDEMPTION | A client used a membership credit to pay for a service |
PACKAGE_SALE | A client purchased a prepaid package |
PACKAGE_REDEMPTION | A client used a session from their package |
GIFT_CARD_SALE | A gift card was purchased |
GIFT_CARD_REDEMPTION | A gift card was used for payment |
OTHER | Anything that doesn't fit the above categories |
How payment is recorded
Each sale record has a payment section:
- Amount paid today — what the client paid in cash or card for this transaction
- Benefit or discount applied — if any membership credit, package session, gift card, or discount was used
- Benefit / credit source — which specific membership, package, or gift card was used (selected per-client)
- Amount applied — the dollar value of the benefit or discount
Example: A facial costs $200. The client is a member and uses a membership credit that covers $150 of it. They pay $50 in cash. In Nabu:
- Amount paid today: $50
- Benefit applied: Membership credit
- Amount applied: $150
This allows Nabu to correctly track both the cash collected and the total value delivered.
Payment types
When recording how a client paid, you can choose from:
| Type | When to use |
|---|---|
CARD | Credit or debit card |
CASH | Cash |
ACH | Bank transfer |
MEMBERSHIP_CREDIT | Payment via membership allowance |
PACKAGE_SESSION | Payment via prepaid package session |
GIFT_CARD | Payment via gift card |
STORE_CREDIT | Payment via account credit |
DISCOUNT_PROMO | A promotional or discount-based adjustment |
COMP | A comp or write-off (no payment collected) |
OTHER_ADJUSTMENT | Any other type of adjustment |
Importing via CSV
The template
Download the Sales & Visit History template from Setup → Sales & Visit History. Fill it in with your historical data.
Key columns:
| Column | Description |
|---|---|
sale_date | Date in YYYY-MM-DD format (e.g., 2026-03-15) |
client_name | Client full name |
client_email | Client email — used for matching |
provider_email | Provider email — must match the email in People & Payroll |
item_type | One of the item types listed above |
service_name | Name of the service — must match Setup → Services |
status | COMPLETED, CANCELLED, NO_SHOW, BOOKED, REFUNDED, etc. |
payment_type | How the client paid (CARD, CASH, MEMBERSHIP_CREDIT, etc.) |
amount_paid | Dollar amount collected |
Why provider_email is used (not provider_name)
Provider email is the identifier because names aren't unique — you might have two "Nicole"s. Email addresses are. When you import a sale with provider_email: nicole@glow.com, Nabu looks up that email in People & Payroll and links the sale to the matching provider.
Make sure the emails match. If the email in your CSV doesn't match any provider email in Setup, the sale will import but won't be linked to a provider. You'll see a warning during import: "Provider email not found in People & Payroll."
Import order matters
Before importing sales history, make sure these are already set up:
- Providers (with email addresses) — Sales reference providers by email
- Services — Sales reference services by name
- Clients — Optional, but helps with matching
If you import sales before setting up providers or services, you'll get matching warnings. You can re-import after setting those up.
Validation and warnings
When you upload a CSV, Nabu validates it before importing. You'll see:
- Errors (red) — data that can't be imported (e.g., missing required field, invalid date format)
- Warnings (yellow) — data that can be imported but won't be fully linked (e.g., provider not found, service not found)
Review warnings carefully. A warning doesn't stop the import, but it means some records won't have full financial attribution.
Adding sales manually
If you need to add individual sales records — for example, a recent sale you want to add without re-importing the whole history — use the "Add Sale" button in the Sales & Visit History section.
The manual form walks you through:
Sale tab
- Date of the sale
- Client (searched from your client list)
- Service or item type
- Which service was performed
- Provider (searched from your provider list)
Payment tab
- Amount the client paid
- Payment method
- Any benefit, credit, or discount applied
- If a membership credit, package session, or gift card was used — select the specific membership/package for the client, or the gift card by card code when known
The manual form keeps memberships and packages tied to the selected client. Gift cards are different: they are transferable stored value, so the redeemer does not have to be the original purchaser. When a card code is missing or unclear, Nabu stages the row for gift card review instead of guessing.
What to do with cancelled and no-show appointments
Keep them in your data. Nabu tracks:
- Cancellations — affect revenue projections and provider utilization
- No-shows — can indicate retention issues for specific clients
- Refunds — adjust revenue totals and margin calculations
Removing these records would make your data look better than it is, which makes the forecasting and retention tools less accurate.
How far back should I import?
The more history you import, the more reliable your trend analysis. Recommended:
- Minimum: 3 months of completed appointments
- Recommended: 12 months (full year covers seasonal patterns)
- Ideal: 24+ months (captures year-over-year trends)
Don't worry if you can only get 3 months — Nabu works with what you have and becomes more accurate as more data comes in.
Confirming this section
Once you've imported your sales history (or connected via API), confirm this section. This is typically the last setup step.

