Back to Alchemy
Alchemy RecipeIntermediatestack

Build a freelancer dashboard that generates invoices, tracks payments and chases late payments

Most freelancers have a moment where they realise they're chasing money they've already earned. An invoice sits unpaid for 45 days. Another for 60. A third client has gone quiet altogether. Meanwhile, your cash flow dries up, overdue bills pile up, and you're spending more time sending "friendly reminder" emails than doing actual work. The spreadsheet approach fails because it's passive: nothing happens unless you remember to do it yourself. What if your invoicing workflow could run itself? What if an overdue invoice automatically generated a professional follow-up email, sent it at the right time, and flagged it in your task manager? What if payment confirmations were logged without touching a keyboard? This workflow exists in the gap between your accounting software and your messaging channels. You just need to connect the pieces. This guide shows you how to build a freelancer dashboard that generates invoices, tracks payments automatically, and chases late payments with minimal intervention. The system works across a productivity app, AI-powered email generation, and specialised payment orchestration, all tied together with a single orchestration platform.

The Automated Workflow

We'll use n8n as the orchestration backbone because it handles conditional logic and nested workflows well, and it integrates cleanly with all the tools in this stack. Zapier or Make (Integromat) could work too, but n8n gives you more control over payment routing and error handling. High-level flow: 1. Invoice data enters your productivity app (a date, client name, amount, due date).

  1. n8n polls the app every 6 hours for new invoices or payment updates.

  2. If an invoice is unpaid and past due, n8n triggers MindPal to generate a custom follow-up email using Claude Opus 4.6.

  3. ChatGPT Writer creates variations of the email for A/B testing (optional, but effective).

  4. Payman AI routes the email and optionally handles payment processing if the client uses supported payment methods.

  5. Payment confirmations loop back into the productivity app as completed tasks.

  6. A Slack notification (or your preferred channel) alerts you to any payment disputes or failures.

Setting up the n8n workflow:

Start by creating an HTTP request node that reads from your productivity app's API. Most modern apps expose a REST endpoint for tasks or items.

GET https://api.yourproductivityapp.com/v1/invoices?status=unpaid&past_due=true
Headers: Authorization: Bearer YOUR_API_KEY Content-Type: application/json

This returns a list of overdue invoices. n8n will loop through each one. Next, add a conditional node that checks if the invoice is more than 3 days overdue (adjust this threshold to your preference).

javascript
// Pseudocode for the condition
if (invoice.dueDate < today - 3 days && invoice.paymentStatus === 'unpaid') { proceed to email generation
} else { skip this invoice
}

Once an invoice qualifies, pass it to MindPal via a webhook. MindPal runs a multi-agent workflow that you've pre-configured to generate professional reminder emails.

POST https://api.mindpal.io/v1/workflows/invoice-reminder
Body:
{ "invoiceId": "INV-2026-0847", "clientName": "Acme Corp", "amount": "£2,400", "daysPastDue": 5, "invoiceLink": "https://yoursite.com/invoices/INV-2026-0847"
}

MindPal's workflow orchestrates Claude Opus 4.6 to write the email body. Configure it with a simple prompt:

You are a professional freelancer following up on an overdue invoice.
Write a polite but firm reminder email for:
- Client: {clientName}
- Amount: {amount}
- Days overdue: {daysPastDue}
- Invoice link: {invoiceLink} The tone should be professional, not aggressive. Keep it under 150 words.

MindPal returns the generated email text. Now feed that into ChatGPT Writer to create a secondary variant (a slightly more urgent version for a second follow-up if needed).

POST https://api.chatgpt-writer.com/v1/generate
Body:
{ "prompt": "Given this invoice reminder email, create a slightly more urgent version (still professional) that emphasises the impact of the delay on cash flow:", "text": "{emailFromMindPal}"
}

Both email versions go into a Payman AI workflow. Payman AI orchestrates the actual sending and, if configured, attempts payment collection via supported methods (card, bank transfer, or cryptocurrency, depending on setup).

POST https://api.payman.ai/v1/send-payment-reminder
Body:
{ "clientEmail": "contact@acmecorp.com", "emailVariant": "primary", // or "urgent" "emailBody": "{generatedEmailText}", "invoiceId": "INV-2026-0847", "amount": "£2,400", "paymentLink": "https://pay.yoursite.com/INV-2026-0847", "webhookUrl": "https://yourn8n.instance/webhook/payment-confirmed"
}

The critical piece here is the webhook URL. Payman AI will POST back to n8n when payment is confirmed, received, or declined. Handle this in n8n with another HTTP node:

javascript
// n8n webhook handler receives:
{ "invoiceId": "INV-2026-0847", "status": "paid", "amountReceived": "£2,400", "transactionId": "TXN-87654321", "timestamp": "2026-03-15T14:32:00Z"
}

Once payment is confirmed, n8n updates the invoice status in your productivity app:

PATCH https://api.yourproductivityapp.com/v1/invoices/INV-2026-0847
Body:
{ "paymentStatus": "paid", "paymentDate": "2026-03-15", "transactionId": "TXN-87654321", "notes": "Payment received via Payman AI"
}

Finally, send yourself a summary notification via Slack or email (most orchestration tools support this natively).

POST https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK
Body:
{ "text": "✅ Invoice INV-2026-0847 (£2,400) marked as paid", "attachments": [ { "colour": "good", "fields": [ {"title": "Client", "value": "Acme Corp", "short": true}, {"title": "Payment Received", "value": "2026-03-15 14:32 UTC", "short": true} ] } ]
}

Set the entire workflow to run every 6 hours. Most freelancers don't need real-time tracking; daily checks are frequent enough to catch payment issues without creating alert fatigue.

The Manual Alternative

If you prefer to send reminder emails yourself or want to review them before sending, modify the workflow to use your productivity app's notification system instead of Payman AI. Have n8n generate the email and log it as a task in your app marked "Ready to send", then you click a button to dispatch it. This trades automation for control, which is reasonable if you work with difficult clients or need to customise messaging frequently.

Pro Tips

Error handling and retries.

If Payman AI fails to send an email (server down, invalid email address), n8n should retry up to 3 times with exponential backoff before alerting you.

Set this in your HTTP node's retry policy.

Rate limiting.

Payman AI and MindPal both have per-minute API limits. If you have many overdue invoices, stagger them: process 5 invoices per run instead of 50 at once. Use n8n's "Batch" node to enforce this.

Cost control.

Each MindPal workflow call and each ChatGPT Writer generation costs money. Skip the ChatGPT Writer variant on first reminders; only generate it for second or third follow-ups. This halves costs while maintaining effectiveness.

Payment method diversity.

Configure Payman AI to accept multiple payment methods (bank transfer, card, PayPal) in the invoice link. Clients are more likely to pay quickly if given options.

Dispute handling.

If a client claims they've paid but your system shows unpaid, the webhook confirmation from Payman AI should always be the source of truth. Manually override only if you have clear evidence (a bank statement, for example).

Cost Breakdown

ToolPlan NeededMonthly CostNotes
n8n (self-hosted)Open Source or Pro Cloud£0 to £48Self-hosted is free; managed cloud starts at $20 USD (approx £16).
MindPalStarter or Standard£29 to £99Includes Claude Opus 4.6 access; vary by API calls made.
ChatGPT WriterBrowser ExtensionFree to £20Free tier covers basic use; premium for higher limits.
Payman AIPay-as-you-go£0.10–£1 per email + payment processing feesCharged per reminder sent; payment processing fees depend on method (2–3% for cards).
Your Productivity AppExisting plan(included)Assume you already use this; no additional cost.
Slack webhooksFree or Pro£0 to £8.50 per user/monthFree tier adequate for notifications.