How to configure triggers in Xurrent

    This article describes how to configure triggers in Xurrent to control which requests are synchronized.

    Triggers in Xurrent: Triggers use field-based queries to filter requests. In this article we will see which fields, operators we can use in triggers. 

    Xurrent Request Filter Syntax Guide

    Complete reference for filtering Xurrent requests in trigger conditions.


    Filter Operators

    All filters are applied as query parameters. Multiple conditions are joined using '&'.

    OperatorDescriptionExampleUse Case
    =Equal (exact match)?id=43523Match exact value
    =!Not equal?status=!assignedExclude specific value
    = (empty)Is null/empty?team_id=Field has no value
    =! (empty)Is not null?team_id=!Field has a value
    =value1,value2In (multiple values)?id=1,2,3,4Match any of the values
    =!value1,value2Not in?status=!assigned,acceptedExclude any of the values
    =<valueLess than?created_at=<2016-01-15T23:00:00ZValue is less than
    =<=valueLess than or equal?created_at=<=2016-01-15T23:00:00ZValue is less or equal
    =>valueGreater than?completed_at=>2016-01-15T23:00:00ZValue is greater than
    =>=valueGreater than or equal?updated_at=>=2016-01-15T23:00:00ZValue is greater or equal
    =>value1<value2Range (exclusive)?created_at=>2015-12-31<2016-02-01Between two values
    =>=value1<=value2Range (inclusive)?created_at=>=2016-01-01<=2016-01-31Between inclusive bounds

    Filterable Fields

    FieldTypeDescriptionOperators
    idIntegerRequest ID==!innot in<>, etc.
    subjectStringRequest subject (max 255)==!= (empty), =! (empty)
    categoryEnumRequest category (required)==!innot in
    impactEnumBusiness impact==!innot in
    statusEnumRequest status==!innot in
    service_instanceReference (ID)Service instance==!= (empty), =! (empty)
    requested_byReference (ID)Person who requested==!= (empty), =! (empty)
    requested_forReference (ID)Person request is for==!= (empty), =! (empty)
    created_byReference (ID)Person who created==!= (empty), =! (empty)
    teamReference (ID)Assigned team==!= (empty), =! (empty)
    memberReference (ID)Assigned person==!= (empty), =! (empty)
    templateReference (ID)Request template==!= (empty), =! (empty)
    organizationReference (ID)Organization==!= (empty), =! (empty)
    created_atDateTimeCreation timestamp=<><=>=, ranges
    updated_atDateTimeLast update timestamp=<><=>=, ranges
    completed_atDateTimeCompletion timestamp=<><=>=, ranges

    Non-Filterable Fields

    From the General Filtering Documentation: https://developer.xurrent.com/v1/general/filtering/                                         

    Following fields are not filterable:

    1. Tags

    2. Custom-Fields                                

    Field-Specific Syntax

    1. ID (Integer)

    Format: id=<value> or id=<value1>,<value2>

    # Single ID
    id=43523
    
    # Multiple IDs
    id=1,2,3,4
    
    # Exclude specific IDs
    id=!100,200
    
    # Greater than ID
    id=>1000
    
    # Range
    id=>=100<=500
    

    2. Status (Enum)

    Format: status=<value>

    Valid Values:

    • declinedon_backlogassignedacceptedin_progresswaiting_for,
    • waiting_for_customerreservation_pendingworkflow_pendingproject_pendingcompleted
    # Single status
    status=assigned
    
    # Multiple statuses (OR)
    status=assigned,accepted,in_progress
    
    # Exclude statuses
    status=!completed,declined
    
    # Only open requests (not completed)
    status=!completed
    

    3. Category (Enum - Required)

    Format: category=<value>

    Valid Values:

    • incidentrfc (Request for Change), rfi (Request for Information),
    • reservationorderfulfillmentcomplaintcomplimentother
    # Single category
    category=incident
    
    # Multiple categories
    category=incident,rfc,rfi
    
    # Everything except incidents
    category=!incident
    

    4. Impact (Enum)

    Format: impact=<value>

    Valid Values: lowmediumhightop

    # Single impact
    impact=high
    
    # High or top priority
    impact=high,top
    
    # Not low priority
    impact=!low
    

    5. Service Instance (Reference - ID)

    Format: service_instance=<id>

    Important: You must use the numeric ID, not the service instance name.

    # Specific service instance
    service_instance=12345
    
    # Multiple service instances
    service_instance=100,200,300
    
    # Has a service instance (not null)
    service_instance=!
    
    # No service instance (null)
    service_instance=
    
    # Exclude specific service instance
    service_instance=!12345
    

    How to Get Service Instance ID:

    1. Via API: GET /v1/service_instances?name=YourServiceName
    2. From UI: Check the URL when viewing the service instance
    3. From request details: Look at the service_instance.id field

    6. Team (Reference - ID)

    Format: team=<id>

    # Specific team
    team=42
    
    # Multiple teams
    team=10,20,30
    
    # Has assigned team
    team=!
    
    # No assigned team
    team=
    
    # My team's requests
    /requests/assigned_to_my_team
    

    7. Member (Reference - ID)

    Format: member=<id>

    # Assigned to specific person
    member=567
    
    # Assigned to me
    /requests/assigned_to_me
    
    # Multiple members
    member=100,200,300
    
    # Has assignee
    member=!
    
    # Unassigned
    member=
    

    8. Requested By / Requested For (Reference - ID)

    Format: requested_by=<id> or requested_for=<id>

    # Requested by specific person
    requested_by=789
    
    # Requested for specific person
    requested_for=456
    
    # Requests I submitted
    requested_by=<my_person_id>
    
    # Requests on my behalf
    requested_for=<my_person_id>
    
    # Has requester
    requested_by=!
    
    # Missing requester (shouldn't happen as it's required)
    requested_by=
    

    9. Created At / Updated At / Completed At (DateTime)

    Format: YYYY-MM-DDTHH:MM:SSZ (ISO 8601 in UTC)

    # Exact datetime
    created_at=2016-01-15T23:00:00Z
    
    # After specific date
    created_at=>2016-01-15T00:00:00Z
    
    # Before specific date
    created_at=<2016-12-31T23:59:59Z
    
    # Date range (exclusive)
    created_at=>2016-01-01T00:00:00Z<2016-02-01T00:00:00Z
    
    # Date range (inclusive)
    created_at=>=2016-01-01T00:00:00Z<=2016-01-31T23:59:59Z
    
    # Last 24 hours
    created_at=>2025-11-04T00:00:00Z
    
    # Updated today
    updated_at=>=2025-11-05T00:00:00Z
    
    # Completed this month
    completed_at=>=2025-11-01T00:00:00Z<=2025-11-30T23:59:59Z
    
    # Has completion date
    completed_at=!
    
    # Not completed (no completion date)
    completed_at=
    

    10. Subject (String)

    Format: subject=<value> (case-sensitive)

    # Exact subject match
    subject=Email%20server%20down
    
    # Has a subject (not empty)
    subject=!
    
    # Empty subject (shouldn't happen as it's required)
    subject=
    
    # Note: Partial matching not supported - must be exact
    

    11. Template (Reference - ID)

    Format: template=<id>

    # Created from specific template
    template=100
    
    # Created from templates
    template=!
    
    # Not from template (manual creation)
    template=
    

    12. Organization (Reference - ID)

    Format: organization=<id>

    # Specific organization
    organization=50
    
    # Has organization
    organization=!
    
    # No organization
    organization=
    

    Complete Examples

    Example 1: High Priority Incidents Assigned to My Team

    category=incident&impact=high,top&team=42&status=!completed
    

    Example 2: Service-Specific Open Requests

    service_instance=12345&status=assigned,accepted,in_progress&category=incident,rfc
    

    Example 3: Recently Created Unassigned Requests

    created_at=>2025-11-01T00:00:00Z&member=&status=!completed
    

    Example 4: Completed Requests This Month

    status=completed&completed_at=>=2025-11-01T00:00:00Z<=2025-11-30T23:59:59Z
    

    Example 8: Requests Created in Last 7 Days for Specific User

    created_at=>2025-10-29T00:00:00Z&requested_for=789&status=!declined
    

    Example 9: High Impact RFCs Pending Approval

    category=rfc&impact=high,top&status=assigned,accepted
    

    Best Practices

    1. Always Use IDs for References

    • DON'T: service_instance=Production Database
    • DO: service_instance=12345

    To find IDs, use the API:

    # Get service instance ID
    GET /v1/service_instances?name=Production%20Database
    
    # Get team ID
    GET /v1/teams?name=IT%20Support
    
    # Get person ID
    GET /v1/people?primary_email=user@example.com
    

    2. Combine Multiple Conditions

    All conditions are joined with AND:

    category=incident&impact=high&status=assigned&team=42
    # Means: incident AND high impact AND assigned AND team 42
    

    3. DateTime Filtering Tips

    • Always use UTC timezone (Z suffix)
    • Use ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
    • For "today", calculate the start of day: 2025-11-05T00:00:00Z
    • For ranges, use inclusive bounds: >=start<=end

    4. Handle Null Values

    • Check if field has value: field=!
    • Check if field is empty: field=
    • Example: Find unassigned: member=

    Quick Reference Table

    NeedFilter SyntaxExample
    Specific requestid=<number>id=12345
    Multiple requestsid=<n1>,<n2>id=100,200,300
    By serviceservice_instance=<id>service_instance=12345
    By statusstatus=<value>status=assigned
    Not completedstatus=!completedstatus=!completed
    High priorityimpact=high,topimpact=high,top
    My teamteam=<id>team=42
    Unassignedmember=member=
    Has assigneemember=!member=!
    Created todaycreated_at=><date>created_at=>2025-11-05T00:00:00Z
    Incidents onlycategory=incidentcategory=incident
    Major incidentsmajor_incident_status=acceptedmajor_incident_status=accepted

    More information

    Have more questions? Ask the community