Manual entry


Overview

The Manual entry data source lets you add customers and their subscriptions by hand, right in GrowPanel. You don't need a billing system, an API integration or a spreadsheet.

It's made for the customers your billing system doesn't know about: customers still on a legacy billing system you're moving away from, customers billed by a partner or reseller, or customers from before you moved to Stripe. Add them once, and your MRR, churn and cashflow include everyone.

Subscriptions you invoice through Stripe, Chargebee or Recurly don't belong here: GrowPanel already imports them from your billing system, whether they're paid by card, bank transfer or invoice.

Manual customers show up in every report exactly like customers from Stripe, Chargebee or Recurly: MRR and movements, churn and churn reasons, retention and cohorts, committed MRR, leads and trials, plan breakdowns, cashflow, the customer list and each customer's page. You can run a manual source alongside your other data sources.

This guide covers:

  1. When to use Manual entry
  2. Adding the data source
  3. The customer list
  4. Adding customers
  5. Adding subscriptions
  6. Changing a subscription
  7. Churn and reactivation
  8. Plans and plan groups
  9. Payments and cashflow
  10. Importing from CSV
  11. How manual customers show up in reports
  12. Settings, recalculating and deleting
  13. Good to know

When to use Manual entry

Manual entry is a good fit when:

  • Some customers are still on a legacy billing system, or are billed by a partner or reseller.
  • You want to add customers from before you started using your current billing system.
  • You're moving from a tool like ProfitWell or ChartMogul where you kept manual customers, and want them in GrowPanel too. Export them to a CSV file and import it.
  • You don't have a developer to build an integration.

If you have hundreds of customers that change every day, connect your billing system instead, or send the data with the Custom API or Google Sheets.


Adding the data source

Go to Settings → Data sources, click Add data source, select Manual entry and click Next.

The Add data source dialog with Manual entry selected

Then fill in:

  • Name – shown in filters and breakdowns, like "Legacy customers".
  • Default currency – used for new subscriptions. Each subscription can have its own currency.
  • Record payments in cashflow? – whether every renewal counts as a payment. See Payments and cashflow.

Name, default currency and the cashflow choice for a new manual source

Click Create data source. You land on the source's page, where you add and manage its customers. There's nothing to connect or sync.

The source also gets a card on the Data sources page. Click the pencil to open it again later.

The card for a manual source on the Data sources page


The customer list

The source's page has three tabs: Customers, Plans and Settings. The Customers tab lists everyone you've entered, with their MRR, total paid, subscriptions, country and status, the same way the Customers page does.

The Customers tab of a manual source

  • Search by name, email or reference.
  • Filter by status: leads, trialing, active, scheduled to churn and canceled.
  • Sort by any column with a sort arrow.
  • Click a row to open the customer.

A calendar icon next to a subscription means it has a scheduled change. Hover it to see what and when.

Right after you save a change, a customer shows Updating for a few seconds while GrowPanel recalculates their MRR.

Churning or deleting several customers

Tick the customers you want, and the buttons above the list change to Churn and Delete.

Two customers selected, with the Churn and Delete buttons


Adding customers

Click Add customer and enter:

  • Name and email – at least one of them.
  • Country – type to search the list.
  • Customer since – the day they first became a lead. It's used for lead and trial reports.

The Add customer dialog with the country search open

Click Add customer, and GrowPanel opens the customer's page so you can add their first subscription. A customer without a subscription counts as a lead.

On the customer's page you can also set:

  • Reference – like the customer number in your old billing system. A CSV import uses it to find the customer again.
  • Custom variables – name and value pairs you can filter by and break reports down by. Start typing, and GrowPanel suggests the names and values you already use.
  • Notes – for your own reference. They're only shown here.

Adding subscriptions

On the customer's page, click Add subscription.

A customer's page with details on the left and a subscription with its timeline on the right

Fill in:

  • Plan – one of your existing plans, or a new one. See Plans and plan groups.
  • Billing frequency – monthly, quarterly, every 6 months, yearly, weekly, or every N months.
  • Currency.
  • Price per period and quantity. The price is what one unit costs per billing period, so a yearly plan has a yearly price. GrowPanel shows the resulting MRR as you type.
  • Discount – a percentage or a fixed amount, forever or until a date.
  • Start date – the first paid day. The subscription renews on this day every period.
  • Started with a free trial – the date the trial started. The trial ends on the start date.
  • Ends – leave it running until canceled, or set the first day without service. Pick a churn reason and add a comment if you know them.
  • Record payments in cashflow – use the source's setting, or override it for this subscription.

The Add subscription dialog

A customer can have several subscriptions, for example a plan and an add-on, or two plans billed in different currencies.


Changing a subscription

Click Change on a subscription to edit it. When you change the plan, price, quantity, billing frequency or discount, GrowPanel asks how to record it:

  • It changes from a date – for real changes, like an upgrade or more seats. GrowPanel records an expansion or contraction on that date. Pick a date in the future to schedule the change: it counts in committed MRR until it happens.
  • Correct a mistake – for typos. The values are rewritten and history is recalculated as if they'd always been right. No movement is recorded.

Changing the quantity, with the choice between a dated change and a correction

Every subscription has a timeline of what changed when, with the MRR change of each step. To undo a change, delete it from the timeline, and history is recalculated without it.

A subscription can have one scheduled change or cancellation at a time. Schedule the next one after the first has happened.


Churn and reactivation

To record that a customer left, click Churn customer on their page. Choose when service stops:

  • At the next renewal – the most common choice when a customer cancels.
  • Today.
  • On another date – in the past or the future.

Add a churn reason, a comment, and whether it was voluntary or a failed payment. The reason and comment show up in the churn reasons report.

The Churn customer dialog

A date in the future schedules the churn. The customer stays active until then, and the churn counts in committed MRR.

To bring a canceled customer back, click Reactivate:

  • They came back – starts the subscriptions that ended again, from a date you pick. This is recorded as a reactivation.
  • Undo the churn – for a churn entered by mistake. The end date is removed, and history is recalculated as if they never left.

Delete is different from churn. It erases the customer and all their history, as if they were never entered. Use it for test customers or duplicates, not for customers who left.

There's no pause for manual subscriptions. If a customer pauses, churn them, and add a new subscription when they come back.


Plans and plan groups

Reports group plans by plan group, so where a manual plan belongs decides where its customers show up in plan breakdowns and filters.

When you add a subscription, the plan list shows your existing plans first:

  • Pick an existing plan, like Pro, and the manual subscription is reported together with your other Pro customers.
  • Create a new plan, like Enterprise, and choose its plan group: a new group, named after the plan or something else (like "Custom plans"), or one of your existing groups.

The Plans tab lists the source's plans, which plan group each one reports under, how they're billed and how many subscriptions use them.

The Plans tab of a manual source

Click the pencil to rename a plan or move it to another plan group. A plan can be deleted once no subscription uses it.


Payments and cashflow

When you add the source, you choose whether renewals count as payments:

  • Yes, every renewal is paid on time – each billing period adds one payment on its renewal date. Payments show up in cashflow reports, the cashflow forecast and each customer's total paid.
  • No, track MRR only – the customers count in MRR and every subscription report, but not in cashflow.

You can change the setting on the source's Settings tab, and override it for a single subscription.

Payments are calculated from the subscriptions, so if you change the past, cashflow follows. A discount shows up as a discount line on each payment. Manual payments have no fees, taxes or failed payments, since no payment processor is involved.


Importing from CSV

To add many customers at once, click Import CSV on the Customers tab. Download the template CSV for a file with the right columns and a few example rows.

Choose your file, and GrowPanel checks it before anything is saved. You see how many customers, subscriptions and plans it adds or updates, or the rows that need fixing, by row number. Click Import to save.

The CSV import after checking a file

Importing the same file again updates the customers and subscriptions instead of adding them twice, so you can fix a value in the file and import it again.

How the file is laid out

  • One row per subscription. Rows with the same customer_ref belong to the same customer.
  • Changes are extra rows. Rows with the same subscription_ref are one subscription that changed over time. Each row is dated by its start_date, and the first row is when it started.
  • A row without a plan adds a customer without a subscription (a lead).
  • Custom variables go in columns named var_<name>, like var_industry.
  • Dates are YYYY-MM-DD. Prices are per billing period, like 49.00 or 1.234,50.

For example, a customer who started on Pro with 3 seats, moved to Scaleup with 5 seats and has 8 seats scheduled from November:

customer_ref,name,email,country,plan,billing_frequency,currency,price,quantity,start_date,trial_start,subscription_ref
northwind,Northwind Logistics,[email protected],dk,Pro,monthly,usd,49,3,2025-03-01,2025-02-15,nw-1
northwind,Northwind Logistics,[email protected],dk,Scaleup,monthly,usd,99,5,2025-09-01,,nw-1
northwind,Northwind Logistics,[email protected],dk,Scaleup,monthly,usd,99,8,2026-11-01,,nw-1

Columns

ColumnWhat it is
customer_refYour ID for the customer, like the customer number in your old billing system. Used to find the customer again on the next import. Without it, customers are matched by email, so give customers without an email a customer_ref.
name, emailAt least one of them.
countryTwo-letter country code, like us or dk. Required.
stateUS state, for US customers.
customer_sinceThe day they became a lead. Defaults to the first subscription's trial or start date.
planPlan name. An existing plan of the source is reused; a new name creates a plan.
plan_groupThe plan group a new plan reports under. Defaults to an existing group with the plan's name, or a new group named after the plan.
billing_frequencymonthly, quarterly, semiannual, yearly, weekly or every N months. Defaults to monthly.
currencyThree-letter currency code. Defaults to the source's currency.
pricePrice of one unit per billing period.
quantityNumber of units. Defaults to 1.
start_dateFirst paid day of the subscription, or the day a change takes effect.
trial_startThe day a free trial started. The trial ends on start_date.
end_dateThe first day without service, when the subscription ended or will end.
churn_reasontoo_expensive, missing_features, switched_service, unused, customer_service, too_complex, low_quality or other.
churn_commentFree text, shown in the churn reasons report.
churn_typevoluntary (the default) or failed payment.
discount_percent, discount_amountA discount on the subscription, in percent or as an amount per billing period.
discount_endsThe day the discount ends. Leave it empty for a discount that never ends.
record_paymentsyes or no to override the source's cashflow setting for this subscription.
subscription_refYour ID for the subscription. Rows with the same reference are one subscription and its changes. Without it, every row is a subscription of its own, matched by plan and start date.
var_<name>A custom variable on the customer.

You can import up to 2,000 rows at a time.


How manual customers show up in reports

Manual customers are regular customers in GrowPanel. Everything you see in reports for Stripe customers works for them too.

To see only the customers of a manual source, filter by Data source. For example, the Customers page:

The Customers page filtered to a manual source

Or the MRR movements report:

MRR movements filtered to a manual source

On a manual customer's page, the icon next to their name takes you straight to where you edit them.

A manual customer's page, with the link to edit them next to the name

Some details on how manual data is counted:

  • MRR is the price per period, minus any discount, divided by the number of months in the period. A yearly subscription of $990 is $82.50 MRR.
  • Movements are recorded on the dates you enter: new, expansion, contraction, churn and reactivation, with the same subtypes as other sources (plan change, quantity change, price change, discount change).
  • Scheduled changes and churn count in committed MRR until they happen.
  • Trials count in the trial and lead reports, with the customer's "customer since" date as the lead date.
  • Renewals need no action. GrowPanel updates manual customers as renewal dates and scheduled changes pass.

Settings, recalculating and deleting

The Settings tab holds the source's name, its default currency and whether renewals record payments.

The Settings tab with the source's settings, Recalculate and Delete this source

Recalculate rebuilds MRR movements and payments for every customer in the source from what's entered. Nothing you entered changes. You rarely need it, since GrowPanel recalculates a customer every time you save.

Delete this source permanently deletes every customer entered in the source, with their subscriptions and history. It can't be undone.


Good to know

Who can edit manual customers? Admins and owners. Read-only team members can see the source and its customers, but not change them.

What about customers who are also in my billing system? A manual customer is a separate customer in GrowPanel, even with the same email as a customer in Stripe. If the billing system still charges them, don't add them manually as well, or their MRR counts twice. If they moved off your billing system to another one, start the manual subscription on the day the old one ended.

Which time zone are dates in? Your account's time zone, set in Settings → Reporting.

Can I use several currencies? Yes. Each subscription has its own currency, and reports convert it to your reporting currency like any other customer's.

Moving from ProfitWell or ChartMogul? Export your manual customers, put them in the CSV format, and import the file. Check first which of them your billing system already reports, so they aren't counted twice.