ServiceNow -> CustomerGauge

Here is a working guide to integrate with ServiceNow. In this guide, you would survey closed ServiceNow tickets with CustomerGauge. Pick event-driven (best) or batch (simple) and wire with standard ServiceNow capabilities.


Option A — Event-driven (recommended)


Goal: As soon as an Incident moves to Resolved/Closed, trigger CustomerGauge to send a survey.

  1. Trigger

    • Create a Business Rule (after update) or a Flow Designer Flow on table incident when state changes to Resolved/Closed. ServiceNow exposes both approaches out-of-the-box.  

  2. Determine “closed”

    • Use the Incident state integer values (e.g., Resolved/Closed) in your condition; ServiceNow stores these as choices (integers mapped to labels).  

  3. Call CustomerGauge

    • In the flow/rule, add an Outbound REST Message (or IntegrationHub REST step) that POSTs a payload to CustomerGauge’s survey trigger endpoint (e.g., contact email + ticket metadata).  

  4. Suggested payload (example)

{ 
 "event": "ticket_closed", 
 "source": "servicenow", 
 "ticket_id": "<incident.number>", 
 "ticket_sys_id": "<incident.sys_id>", 
 "closed_at": "<incident.closed_at>", 
 "requester_email": "<caller_id.email>", 
 "assignment_group": "<assignment_group.name>", 
 "priority": "<priority>",
  "category": "<category>", 
 "agent": "<assigned_to.name>" 
}
  • Use this to select the correct program/touchpoint (e.g., “ITSM Ticket Closure”) and to personalize the invite in CustomerGauge.


  1. (Nice to have) Timeline/Notes

    • If you also post responses back somewhere else (e.g., CS platform), ServiceNow can keep a log, but for survey send you just need the outbound call.


Option B — Batch (hourly/daily)


Goal: Pick up all incidents closed since last run, then push to CustomerGauge.

  1. Query ServiceNow via Table API for incident with filters like state=Closed and sys_updated_on in the last X minutes/hours.  

  2. Transform & POST the same payloads to CustomerGauge in bulk from your integration service.

  3. Consider auto-closure rules (e.g., some instances auto-close after N days post-resolve) so your filter captures both manual and auto-closures.  


Option C — Email link (no code)


If you prefer zero code, configure a ServiceNow email notification on closure that sends the requester a unique CustomerGauge survey URL (tokenized). It’s less controllable than webhooks but very fast to deploy.  


Implementation notes

  • Idempotency: include ticket_sys_id (or your own GUID) when calling CustomerGauge; dedupe if retried.

  • Eligibility logic: suppress for VIPs, internal tickets, or if the same requester was surveyed in the last N days.

  • PII/GDPR: only send what’s needed (typically email + ticket number + minimal context).

  • Testing: move one test group first, then expand.

  • State mapping: confirm your instance’s exact choice values for Resolved/Closed before go-live; they’re configurable.  


[Contributed by AD 6 Oct 2025]