When you start freelancing as a developer, you think your job is 100% writing code.
But the reality is much different. Freelancing is 40% coding, and 60% admin. You have to find clients, send proposals, write contracts, track invoices, chase late payments, and manage project timelines.
If you don't automate the admin work, it will eat into your billable hours and lead to burnout. As developers, we automate our servers and our CI/CD pipelines. We should be automating our business operations too.
Here is the exact stack and workflow I built to automate my freelance business, so I can focus purely on writing code.
The Stack
Notion: The central hub for all client data, projects, and invoices.
Zapier (or Make): The glue that connects all the apps.
Stripe (or Suby/Paddle): To handle the actual payments.
Calendly: For booking discovery calls without endless email ping-pong.
The Workflow: Step-by-Step
Client Intake (The Lead Generation)
I use a simple form (Tally or Typeform) on my website. When a potential client fills it out, Zapier automatically creates a new card in my "Leads" Notion database. It also sends an automated email to the client with a link to my Calendly, so they can book a discovery call immediately.Proposals and Contracts (The Legal Side)
Once a client is ready to move forward, I don't waste time writing a custom proposal from scratch. I use a pre-made Notion template for my proposals. I share the page with them. It contains the scope of work, the timeline, and the pricing.
Pro-tip: For the contract and NDA, never write them from scratch. Use pre-built templates that have been vetted by a lawyer. I use a Contract & NDA Pack that covers 99% of freelance scenarios. It saves me hundreds of dollars in legal fees.
- Invoicing and Payments (The Money) This is where most freelancers waste time. I used to manually generate PDF invoices and send them via email, then set calendar reminders to follow up.
Now, I generate a payment link using Stripe. When the client pays, Zapier listens for the checkout.session.completed webhook. Once triggered, it updates the invoice status in Notion to "Paid" and marks the project as "Active."
- Project Kickoff As soon as the payment clears, Zapier automatically creates a shared Slack channel (or a shared Notion workspace) for the client, invites the client, and sends them a welcome message with an onboarding questionnaire.
No manual setup. No "Hey, I just sent the invite" emails. It just happens.
The ROI of Automation
It took me about a weekend to set up these automations. But now, I save roughly 10 hours every single week that I used to spend on admin, copy-pasting data, and writing invoices. That’s 10 extra hours of billable coding time.
If you are a freelancer, look at your workflow this week. Find the most repetitive task (like sending invoices) and automate it. Your future self will thank you.
If you want to skip the setup phase and just grab the exact recipes I use, I have a Zapier Automation Recipes pack here that includes all the triggers and actions.
And if you want to streamline your client experience from day one, check out the Client Onboarding System.
Top comments (0)