Establishing an invoicing workflow for small medium businesses usually means jumping around multiple systems, each specializing in certain parts, whether design layout, number calculation, or hours accrual.

I created INVOICER as a drop in replacement to our current system of patched Google Sheets, Docs, and Acrobat PDF generation.

What was once a 30 minute task for generating invoices, now takes 1 minute.

What it does

Airtable Block that allows for quick invoice generation. Invoices are generated as PDF exports with ability to email via attachment using your business account. The reference base is flexible enough to be adapted to any usage or accounting method. Features built in include:

  • Line items that can be repurposed quickly and elegantly, helping to establish uniform cost standards.
  • Adaptable configuration pulling from a config table.
  • Ability to track invoice status.
  • Basic summation and invoice aggregation.

This base coupled with the block provides an invoicing workflow that gives flexibility to businesses to adapt this workflow to their own usage.

The workflow here simplifies the data entry and replication for a small medium business's invoicing workflow. No need for Quickbooks or other hefty tools, especially when all the project information is already in Airtable.

How I built it

Using ReactJS and Airtable Blocks API.

Challenges I ran into

This was my first time using the Airtables Blocks API and understanding the nuances there. I am also very new to Airtable so there was a bit of learning on the limits the tool. Reference material was helpful but there were still gaps on baseline understanding of how fields work. Blocks release is also another unknown that is not as well documented as I would have liked.

Accomplishments that I'm proud of

I'm proud of being able to use this tool to replace my existing invoicing system. I expect this block will just better with time and updates.

What's next

I'm expecting continued iteration on the block to streamline a lot of hacks that were put in place, just due to the time limits.

Share this project: