Article Zapier Integration Guide

So you want to hook FieldPulse up to Slack when a job completes, or dump new customers into Mailchimp without writing a line of code? Zapier's your friend here. Yeah, this one tripped me up too when I first looked at it — turns out the "Work Order" trigger has some quirks around custom fields that aren't immediately obvious.

What You Can Build

The FieldPulse Zapier integration gives you triggers and actions to automate the boring stuff:

  • Triggers: Work order created, work order status changed, new customer added, invoice paid
  • Actions: Create work order, update work order status, create customer, find customer

Common patterns I see working well:

  • Slack notification → team channel when high-priority job is scheduled
  • Google Sheets row → new customer record in FieldPulse
  • Work order completed → QuickBooks invoice (though honestly, native QuickBooks integration is usually cleaner for this)
  • Typeform submission → create work order with pre-filled details

Setting Up Your First Zap

You'll need a Zapier account (free tier works for testing) and your FieldPulse API key. Head to Settings > Integrations > API Keys in your FieldPulse account. Copy that key — and yeah, don't commit it to GitHub, I've seen that movie before.

In Zapier, search for "FieldPulse" when adding a trigger or action. The app is officially listed now, so no need for webhooks unless you're doing something weird.

The Custom Fields Gotcha

Okay here's the thing that bit me: custom fields on work orders don't automatically show up in the Zapier trigger payload. You have to explicitly enable them per field in FieldPulse. Go to Settings > Custom Fields, edit the field, and check "Available in API/Integrations."

Without that flag, your Zap sees the standard fields (customer, status, scheduled date) but your "Equipment Serial Number" or "Warranty Type" custom field is just... ghosted. Took me an embarrassing amount of time to figure that one out.

Filtering and Logic

Zapier's built-in filter steps are your friend here. Don't create a Zap that fires on every work order status change — that's noisy. Instead:

Trigger: Work Order Status Changed
Filter: Status equals "Completed"
Action: Send Slack message to #completed-jobs

For more complex branching (different Slack channels per job type, different follow-up paths), you'll want either multiple Zaps with tight filters, or upgrade to Zapier's Paths feature on their paid plans.

Rate Limits and Reliability

FieldPulse's API has rate limits that apply to Zapier calls too — roughly 100 requests per minute. For most field service operations that's plenty, but if you're doing bulk imports or syncing historical data, you might hit it. Zapier will automatically retry on 429 responses, but worth knowing.

Also: Zapier polls for triggers on their free plan, which means delays of up to 15 minutes. If you need real-time, you need webhooks (see Setting Up Webhooks) or Zapier's paid tiers with instant triggers.

Testing Tips

When testing your trigger step, Zapier pulls the most recent work order/customer/whatever. If your test data is weird or incomplete, your downstream steps will be confusing. I usually create a clean test work order specifically for Zapier testing — "Zapier Test - Ignore" with complete dummy data.

Also: the "Test" button in Zapier doesn't actually fire your actions in FieldPulse, it just validates the connection. To really test the round-trip, you need to turn the Zap on and do the real trigger event (create a work order, change a status, etc).

Alternatives and When to Not Use Zapier

Honestly? For QuickBooks and Salesforce, use the native integrations (QuickBooks, Salesforce). They're more reliable and handle edge cases better. Zapier shines when you're connecting to things we don't integrate with directly — niche CRMs, notification tools, spreadsheets, that kind of thing.

If you're comfortable with code, webhooks or direct API calls are more flexible and cheaper at scale. But for getting something running in 20 minutes without bothering your dev team? Zapier's hard to beat.

See Also

  • Using the FieldPulse API — for when you outgrow Zapier
  • Setting Up Webhooks — real-time, no polling delay
  • Integrations Overview — what's available natively
  • Brianna — we do this exact flow. Pro tip: add a step in your Zap that sends a Slack message or email to your dispatcher with the new WO number and customer details. Saves them from having to watch the unassigned queue constantly.

    Also map the form's "preferred date" or "urgency" field to a custom field on the WO if you capture that. Makes triage faster.

  • Not silly at all! You can absolutely leave technician unassigned — just don't map anything to that field in the Zap. The work order gets created with no assignee, which is totally valid. Your dispatcher can grab it from the unassigned queue later.

    Re: "Create Work Order" vs alternatives — that's the right action for your use case. The other option would be webhooks but that's overkill here.

    One tip: set the status to something like "Needs Scheduling" or "Unassigned" if you have a custom status for that. Makes it easier for your dispatcher to filter.

  • Hi! This is probably a silly question but I'm trying to set up a Zap where when a customer fills out our website form (it's a Google Form right now), it creates a customer in FieldPulse and also creates a work order automatically. I got the customer part working but the work order creation is confusing me because it wants me to pick a technician and we don't assign until later in the day usually! Is there a way to leave that blank or do I need to figure out something else? Also I'm not sure if I'm supposed to use the "Create Work Order" action or if there's a better way. Thanks so much for any help!!!

  • Ah yeah, the line items thing — should probably add that to the main article. The case sensitivity on email search is classic Zapier, good catch. I'll flag that for an update.

  • Good writeup Eli. Heads up on a gotcha I hit: if you're using Zapier to create work orders with line items (parts/labor), the action doesn't support nested arrays cleanly. Workaround is creating the WO first, then a second Zap step to add line items via the API directly. YMMV but that's what worked for my client.

    Also worth noting: Zapier's "Find Customer" search is case-sensitive on email by default, which surprised me. There's an option to make it case-insensitive but it's buried in the advanced options.