All guides
Workify
Notion
CRMintermediate

Use Notion as Your CRM and Auto-Create Workify Invoices

Many freelancers track clients and projects in Notion. Learn how to connect your Notion database to Workify so invoices are created automatically when a project status changes.

What You'll Build

An automation that watches a Notion database for status changes (e.g. when a project moves from "In Progress" to "Ready to Invoice") and automatically creates a Workify invoice with the project details.

Why Notion + Workify

Notion doesn't have invoicing — but a huge number of freelancers and consultants already manage their client projects, scopes, and deliverables there. Workify doesn't have a project tracker — but it's the best place to send invoices and get paid. Connecting them means your Notion project board drives your billing workflow automatically.

What You'll Need

  • A Workify Pro account with an API key (Settings → API Keys)
  • A Notion workspace with a project/client database
  • A Make account (Notion + REST API is better suited to Make than Zapier for this workflow)

Step 1: Prepare Your Notion Database

Your Notion database needs the following properties to map to a Workify invoice:

Notion PropertyTypeMaps To
NameTitleInvoice notes / line item description
Client EmailEmailUsed to look up Workify client
AmountNumberInvoice unit_price
CurrencySelectInvoice currency
StatusSelectTrigger condition

Add a Status select property with options like: Scoping, In Progress, Ready to Invoice, Invoiced.

Also add an Invoice ID text property — you'll write the Workify invoice ID back here once created.

Step 2: Create a Make Scenario

  1. In Make, create a new scenario
  2. Choose Notion → Watch Database Items as the trigger
  3. Connect your Notion account and select your projects database
  4. Set it to watch for updated items

Step 3: Filter for the Right Status

Add a Filter after the trigger:

  • Condition: Status equals Ready to Invoice
  • Also add: Invoice ID is empty (to avoid creating duplicate invoices if the item is updated again)

Step 4: Look Up or Create the Workify Client

Add an HTTP module:

GET https://getworkify.app/api/v1/clients?email={{notion_item.client_email}}
Authorization: Bearer wfy_your_key

Add a Router to branch on whether a client was found:

  • Client found: use {{client.data[0].id}}
  • Client not found: add a POST /api/v1/clients step first, then continue

Step 5: Create the Invoice

POST https://getworkify.app/api/v1/invoices
{
  "org_id": "your-org-id",
  "client_id": "{{client_id}}",
  "currency": "{{notion_item.currency}}",
  "notes": "{{notion_item.name}}",
  "line_items": [
    {
      "description": "{{notion_item.name}}",
      "quantity": 1,
      "unit_price": {{notion_item.amount}}
    }
  ],
  "due_date": "{{formatDate(addDays(now; 30); 'YYYY-MM-DD')}}"
}

Step 6: Write Back to Notion

After the invoice is created, update the Notion database item to record the invoice ID and change the status to "Invoiced":

  1. Add a Notion → Update a Database Item module
  2. Set:
    • Invoice ID = {{invoice.id}}
    • Status = Invoiced

Now your Notion board reflects which projects have been invoiced, and you can click through to find the invoice ID without leaving Notion.

Handling Project Phases and Multiple Line Items

If your projects have multiple phases (Design, Development, Testing), structure your Notion database with a sub-items or linked database approach:

  1. Use a parent "Project" database and a child "Deliverables" database
  2. In Make, after fetching the parent project, query the linked deliverables:
    • Notion → Get Database Items filtered by parent project
  3. Use Iterator + Array aggregator to build multiple line items
  4. Pass the array to Workify's line_items field

This gives you properly itemised invoices that match the breakdown your client sees in Notion.

Triggering From a Button

If you prefer manual control rather than automatic triggering, Notion's Button property can call a Make webhook when clicked:

  1. In Make, use Webhooks → Custom webhook as your trigger instead of "Watch Database Items"
  2. In Notion, add a Button property to your database
  3. Configure the button action: Trigger automation → Send webhook with your Make URL

Now clicking "Create Invoice" in Notion fires the Make scenario on demand — giving you the speed of automation with manual confirmation.

Tips

  • Add a Notion → Search Objects step to look up related company information if your database links to a separate Clients database
  • Use Notion formulas to pre-calculate the invoice amount (e.g. hourly rate × hours tracked) before the automation reads it
  • Set Make to run the scenario every 15 minutes so status changes are picked up promptly

Ready to automate your invoicing?

Get your Workify API key and start building in minutes. Pro plan includes full API and webhook access.