Workshop Automation
All Workshops
Click to configure
Sales & Revenue
Fetch past orders from WooCommerce REST API and import them as sales records. Orders already in the system are skipped automatically.
WooCommerce API keys must be saved in API Settings first.
Revenue — Last 30 Days
By Workshop
By Payment Gateway
Top States
Orders by Day of Week
Recent Orders
Payment Reconciliation
Compares successful gateway payments against the orders recorded in this system, so you can spot money received without an order, orders with no payment, and amount mismatches.
Add the gateway's API keys first.
⚠ In gateway — not in system (money received, no order logged)
⚠ In system — not in gateway (order logged, no successful payment)
⚠ Amount mismatch
✓ Matched (net = after gateway fees)
⚠ Orders received but not yet settled (awaiting payout — usually settles next cycle, T+2/T+3)
🏦 Bank payouts (each settlement Razorpay deposited — click to see the orders it paid out)
Profit & Loss
Revenue is shown net of 18% GST. Gateway fees use actual settlement data where available (PhonePe is estimated). Enter Facebook ad spend excluding GST — 18% GST is added automatically. Groceries = ₹/workshop × number of workshop sessions (auto-counted as distinct workshop × week — editable). The Batch Profitability table below breaks this down per batch (Workshop ID): gateway fees are auto-allocated, ad spend & ingredients are entered per batch, and any leftover shared overhead is spread by revenue share when the toggle is on.
P/L Statement
Gateway Fees
Workshop Sessions (distinct workshop × week in the period)
Batch Profitability (per Workshop ID — edit ad spend & ingredients inline)
Accounting (Double-Entry)
Profit & Loss
Balance Sheet
Trial Balance
Upload a CSV of expenses / ad spend. Columns:
Date, Account, Amount, GST%, PaidFrom, Narration.
Amount is the total incl. GST; Account & PaidFrom match by name or code (GST% defaults to 18, PaidFrom to Bank). GST is auto-claimed as ITC.
↓ Download template
Journal Entries
Add Account
Dashboard Overview
Revenue — Last 30 Days
Top Workshops by revenue
Revenue by Payment Gateway
Top Students by purchases
Students by State
Students Directory
No students found.
Tag Management
Add a Tag
Existing Tags
No tags yet — add one above.
Order Logs
No logs yet.
WhatsApp Broadcast
Connect a Google Sheet — whenever the trigger column gets filled in on a row, a WhatsApp template message is sent to that row's contact automatically. Templates are created in Meta Business Manager ↗; this page only picks from already-approved templates.
All Broadcasts
No broadcasts yet.
API Settings
⚠ Leave any field blank to keep its existing saved value. Only fill a field to update it.
📱 Messaging & Email WhatsApp · Waflux · Selzy
WhatsApp Cloud API
✓ already set
Waflux
✓ already set
Selzy
✓ already set
Selzy Automation Trigger (global — fires for every workshop unless overridden per workshop)
Paste the URL from your Selzy omni-automation API Trigger block. In your email template use
{{ ApiTrigger1.group_link }},
{{ ApiTrigger1.schedule }},
{{ ApiTrigger1.workshop }} etc.
📊 Sheets & Order Import Google · All Sales · WooCommerce
Google Service Account (for Sheets)
✓ already set
All Sales Sheet (global duplicate check — applies to every workshop)
When a new order arrives, the Check Duplicate step will check this sheet in addition to the per-workshop sheet.
Use your master "All Sales" Google Sheet so students from previous batches can't re-enrol.
WooCommerce REST API (needed for historical order import)
✓ already set
✓ already set
✓ already set
Until you set this, the live order webhook accepts any caller. WooCommerce Delivery URL:
…
📝 Google Form → Order create an On-Hold order from each new form row
A Google Apps Script on your responses sheet calls this app whenever a new row arrives. Set the Product ID for the current workshop here (change it only when the workshop type changes). Webhook URL to use in the script:
https://YOUR-DOMAIN/webhook/form-order
Creates one On-Hold test order in WooCommerce (save the Product ID first).
💳 Payment Gateways Razorpay · Cashfree · PhonePe
Razorpay (for payment reconciliation)
Generate keys in Razorpay Dashboard → Settings → API Keys → Generate Key. Read access is enough.
✓ already set
Cashfree (for payment reconciliation)
Generate keys in Cashfree Dashboard → Developers → API Keys. Use your Production credentials.
✓ already set
PhonePe (for payment reconciliation)
From PhonePe Business → Developer Settings → API Keys. PhonePe can only verify orders one-by-one, so reconciliation confirms each recorded order was actually paid (it can't list payments that have no order).
✓ already set
📣 Facebook / Meta Ads auto-fill ad spend in P&L
Meta Marketing API (reads ad spend for the P&L page)
Create a System User in Meta Business Settings → System Users, generate a token with the ads_read permission, and assign the ad account to it. The Ad Account ID is the number shown in Ads Manager (with or without the
act_ prefix).
✓ already set
📎 File Uploads Cloudinary — PDFs
Cloudinary (for uploading workshop PDFs — free)
In Cloudinary Console: copy your Cloud name (Dashboard); create an Unsigned upload preset (Settings → Upload → Upload presets → Add → Signing Mode: Unsigned) and copy its name; and turn on Settings → Security → "Allow delivery of PDF and ZIP files".
🔑 Account signed up with: droliaz22b@gmail.com
🔑 Account signed up with: droliaz22b@gmail.com
✓ Saved
Google Contacts Connection
Connect a Google account to automatically create contacts. You can disconnect and switch to a different account anytime.
Checking…
⚙️ One-time developer setup (OAuth credentials)
Set up once in Google Cloud Console. After this, only the "Sign in with Google" button above is needed.
✓ already set
✓ Saved