Anyone using FieldPulse alongside another system? How do you manage the overlap?

We're in that awkward middle ground where FieldPulse handles most of our field operations, but we still have a legacy CRM that sales refuses to give up (and honestly, it's got 10 years of customer history that would be painful to migrate). Right now we're doing a lot of manual CSV exports and it's... not great.

Curious how others are handling this. Are you:

  • Running dual systems with some kind of sync?
  • Using FieldPulse as the source of truth for some data and the other system for others?
  • Just living with the redundancy?

YMMV obviously, but I'd love to hear what's actually working in practice vs. what sounds good in theory. Any gotchas worth sharing?

Parents
  • Jumping in from the dev side — if you're building custom middleware, yeah this one tripped me up too when I first looked at it: the FieldPulse webhook payload doesn't include custom fields by default (see this thread for context). You need to explicitly request the custom_fields expansion or your sync will silently drop data.

    Code snippet that saved me:

    // Webhook verification + custom field fetch
    const payload = await verifySignature(req);
    const fullOrder = await fpClient.workOrders.get(payload.id, {
      expand: ['custom_fields', 'assigned_technicians']
    });

    Edge case: if the webhook fires before the custom field values are committed, you'll get stale data. Built in a 2-second delay and retry logic. YMMV.

Reply
  • Jumping in from the dev side — if you're building custom middleware, yeah this one tripped me up too when I first looked at it: the FieldPulse webhook payload doesn't include custom fields by default (see this thread for context). You need to explicitly request the custom_fields expansion or your sync will silently drop data.

    Code snippet that saved me:

    // Webhook verification + custom field fetch
    const payload = await verifySignature(req);
    const fullOrder = await fpClient.workOrders.get(payload.id, {
      expand: ['custom_fields', 'assigned_technicians']
    });

    Edge case: if the webhook fires before the custom field values are committed, you'll get stale data. Built in a 2-second delay and retry logic. YMMV.

Children