Connect FieldPulse to system not on integrations list

We're using some proprietary logistics software that FieldPulse obviously doesn't integrate with. Need to push work order data from FieldPulse into it when jobs complete.

Looked at Zapier but the logistics system isn't on there either. Do I need to build something custom? If so, what's the path — webhooks from FieldPulse into some middleware?

Not looking for a tutorial. Just need to know if this is feasible and roughly how much dev time I'm looking at.

  • Totally feasible — done this a few times. Main path is webhooks + a lightweight middleware service.

    FieldPulse fires webhook events on status changes (including completion). Your middleware receives the payload, transforms it to whatever format your logistics system expects, then POSTs it there.

    Minimal viable version: AWS Lambda or similar, maybe 4-6 hours of dev work if the logistics system has decent API docs. Worth noting: you'll want idempotency handling on your end, since webhooks can occasionally fire twice (known issue in some edge cases).

    Happy to share a sample Node handler if that helps.

  • 4-6 hours sounds manageable. What's the webhook payload structure look like on a completed work order? Does it include customer address/location data or just the work order ID?

  • Hey Mike — yeah this is a common pattern. The work_order.status_changed event includes the full work order object, which has customer location, assigned tech, custom fields, etc. You shouldn't need a follow-up API call just to get location data.

    Quick example of what hits your endpoint:

    {
      "event": "work_order.status_changed",
      "data": {
        "id": "wo_abc123",
        "status": "Completed",
        "customer": {
          "name": "Acme Corp",
          "address": {
            "street": "123 Industrial Way",
            "city": "Austin",
            "state": "TX"
          }
        },
        "assignee": { "id": "usr_456", "name": "Sarah Chen" },
        "completed_at": "2025-07-12T14:30:00Z"
      }
    }

    Full reference: Setting Up Webhooks and webhook payload structure thread.

    One heads up: if your logistics system requires auth tokens that expire, you'll need to handle refresh in your middleware. FieldPulse webhooks don't support OAuth client credentials flow natively — the webhook just fires to your URL with a signature header for verification.

    Feel free to drop your use case in the reply if you want me to flag any other gotchas.

  • // verify signature
    const crypto = require('crypto');
    const sig = req.headers['x-fieldpulse-signature'];
    const payload = JSON.stringify(req.body);
    const expected = crypto
      .createHmac('sha256', webhookSecret)
      .update(payload)
      .digest('hex');
    if (sig !== expected) return 401;

    Don't skip verification. Logs from failed handshakes aren't surfaced in the FieldPulse UI — you just see 'delivery failed' with no body.