Zapier connector

Zapier is the Swiss-army knife of no-code integrations — connecting Google Forms, Calendly, Slack, Mailchimp, Notion, Airtable, and ~6,000 other apps to each other. The Solid Accounting Zapier connector exposes most of Solid's API as Zapier triggers and actions, so you can wire up automations without writing code.

What's in the connector

Triggers (events Solid can emit to Zapier)

TriggerWhen it fires
New invoice postedEvery time an invoice posts
New bill postedEvery time a bill posts
Payment receivedEvery time a Receive Payment posts
Customer createdEvery time a new customer is added
Vendor createdEvery time a new vendor is added
Period closedEvery time a fiscal period closes
Reconciliation completedEvery bank reconciliation

Actions (things Zapier can do in Solid)

ActionPurpose
Create customerNew customer record
Create vendorNew vendor record
Create invoiceNew invoice
Create billNew bill
Apply paymentReceive Payment, applied to one or more invoices
Pay billPay Bill, applied to one or more bills
Find customer by emailLook up to use in subsequent actions
Find invoice by external IDIdempotent re-imports

Searches (lookup-only, for branching logic)

SearchPurpose
Find customerBy name, email, or external ID
Find vendorSame
Get account balanceFor "if balance over X..." automations

Common Zaps

Google Form → New customer in Solid

A signup form on your website creates a customer record automatically.

Trigger: Google Forms → New form response
Filter:  (form is your "New customer signup" form)
Action:  Solid Accounting → Create customer
   Map: display_name = form's "Company name" field
        email        = form's "Email" field
        phone        = form's "Phone" field
        external_id  = "google_form_" + form's response ID  (for idempotency)

This Zap fires every time someone fills out the form. Solid gets the new customer; you don't paste anything.

Calendly booking → New customer + invoice draft

A consultation booking creates the customer (if new) and a draft invoice for the booked time.

Trigger: Calendly → New invitee
Action 1: Solid Accounting → Find customer by email
Action 2: Filter — only continue if customer not found
Action 3: Solid Accounting → Create customer
            display_name = invitee name
            email        = invitee email
Action 4: Solid Accounting → Create invoice (draft)
            customer_id  = (from Action 1 if found, else Action 3)
            date         = today
            status       = draft
            lines        = [{description: "Consultation — " + event name,
                              amount_cents: based on event type,
                              account_id: your Service Income account}]

The invoice sits in draft status; you review and post manually after the meeting actually happens.

Stripe Atlas / new business → Set up Solid file

For accountants who onboard new clients regularly, a Stripe Atlas (or similar) signup can pre-populate the client's Solid file.

Trigger: Stripe Atlas → New customer (or your onboarding form)
Action 1: Solid Accounting → Create customer
Action 2: Slack → Send message to your team channel: "New client {name} created in Solid"

Less ambitious than a full file-creation flow, but cuts the manual step.

Mailchimp opt-in → Welcome email + customer record

A new email subscriber becomes a Solid customer (so you can follow up with offers / invoices later).

Trigger: Mailchimp → New subscriber
Filter:  Tag includes "qualified-lead"
Action:  Solid Accounting → Create customer
   Map: display_name = first + last name
        email        = subscriber email
        external_id  = "mailchimp_" + Mailchimp subscriber ID

How auth works

The Zapier connector authenticates against your Solid API the same way every other API client does — via your X-API-Key header.

To set it up the first time in Zapier:

  1. Pick a Solid Accounting trigger or action in your Zap
  2. Zapier prompts to Connect Solid Accounting
  3. Enter your API base URL (e.g. https://your-solid.example.com/api/v1 — not the localhost URL since Zapier hits it from their cloud)
  4. Enter your API key
  5. Zapier validates by calling /auth/me — confirms the key works

After connection, the same auth is used for every action and trigger in every Zap.

Network requirements

Zapier hits your API from their cloud — the localhost-only default won't work. You need:

  1. A reverse proxy with a public hostname (e.g. solid.acme.com) terminating TLS and proxying to localhost:21384
  2. The proxy IP-allowlisted to Zapier's servers if you want defense-in-depth (Zapier publishes their egress IP ranges)
  3. Or a tunnel via Cloudflare Tunnel, Tailscale Funnel, ngrok — same idea, different vendor

For testing, ngrok is the fastest path:

ngrok http 21384
# Use the ngrok URL as your API base in Zapier's connection step

Don't run ngrok permanently for production; pick a stable hostname.

Idempotency in Zapier

Zaps re-fire on errors. Without idempotency, an error during your Solid create can cause duplicates on retry. Solution: use external_id on every create:

  • For Stripe-driven Zaps: stripe_charge_<charge_id>
  • For Google Form Zaps: google_form_<response_id>
  • For Calendly Zaps: calendly_<event_id>

Even if Zapier retries 3 times, the external_id lookup finds the existing record on attempts 2 and 3 and does nothing.

Custom integrations beyond Zapier

If Zapier doesn't have a connector for the third-party system you need, you can:

  • Build a custom Zap action with Zapier's webhooks-by-Zapier feature, posting to your Solid API directly
  • Use Make (formerly Integromat) — similar concept; has a Solid Accounting module
  • Write a small custom service — see the Stripe recipe for the pattern

When Zapier isn't the right tool

For high-volume, low-latency, mission-critical flows, Zapier's per-zap-per-month cost adds up and the ~5-minute polling interval (for non-instant Zaps) is too slow. Build a custom service in those cases:

  • More than ~1,000 events per month
  • Latency requirements under 1 minute
  • Complex branching logic that exceeds Zapier's filter capabilities
  • High-stakes accuracy requirements (better testability with code than with no-code)

For everything else, Zapier is the cheapest path. A small business with 50 form submissions a month and 10 Calendly bookings can run the whole integration on Zapier's free or starter tier.

Cross-references

Updated May 2, 2026
Edit this page on GitHub →
Was this helpful?

We use this to prioritize which docs to improve. No tracking, no email follow-up.