Edit streak

A streak refers to a consecutive series of actions or engagements by a customer, based on which loyalty benefits are provided.

Only the target-related part of the streak can be edited once the streak is created. The target-group-related section and the period-related section are not editable once created. So, to edit a create, first the target-group ID & the target ID needs to be figured out.

Then, by using the update target API, we can edit the following components of the streak.

  1. expression
  2. expressionJson
  3. filters (scope filters & rule filters)
  4. defaultValues



For detailed information about our APIs and for hands-on testing, refer documentation in API overview and step-by-step guide on making your first API call in Make your first API call .


  • Authentication: Basic/OAuth authentication
  • Default access group

Resource information

Rate limitNA
Batch supportNA

API endpoint example


Request body parameters

Parameter NameData TypeDescription
activeBooleanIndicates if the tracking is active or not.
descriptionStringA brief description of the target group.
nameStringThe name identifier for the target group.
preferredTillIdNumberIdentifier for a preferred till.
trackingTypeStringThe type of tracking the milestone is created for. Supported values:
- Default (single target tracking),
- Unified (tracking multiple targets as a unit),
- Streak (Tracking the achievement of a user across the cycles continuously),
- Capping (Tracking the number of points a user has got over a period, so that capping can be applied).
targetEvaluationTypeStringThe evaluation strategy for the targets. Supported values:
FIXED_CALENDAR_WINDOW - Each cycle runs for a defined period from the selected start date
CYCLIC_WINDOW - Cycle starts after customer's 1st transaction post enrolment
PERIOD_AGNOSTIC_WINDOW - The cycle continues until the user achieves the specified target.
totalPeriodsNumberThe total number of periods over which the tracking is evaluated.
frequencyTypeEnumThe frequency of each cycle in which the user has to achieve the target value. Supported values: Monthly, Quarterly, Half-yearly, Yearly, Weekly.
frequencyNumberThe frequency count, relevant to the frequencyType.
recurringCyclesNumberThe number of cycles for which the tracking recurs.
periodsObjectAn array of period objects, each containing details about the individual periods within the tracking.
activeBooleanIndicates if the period is active.
descriptionStringA brief description of the period.
endDateDate TimeThe end date and time of the period.
periodStatusStringIndicates if the cycle of the Milestone is active/inactive.
refCodeStringA reference code for the period.
startDateDate TimeThe start date and time of the period.
targetsObjectAn array of target objects, each outlining a target within the tracking.
activeBooleanIndicates if the target is active.
descriptionStringA brief description of the target.
expression*StringA string representing the condition to meet the target.
expressionJson*StringA JSON expression that specifies the conditions required to achieve the target.
filters*ObjectIn this object, you can define the entity to which the specified expressions related to the target will be applied.
entityType*EnumThe entity to which the specified expressions related to the target will be applied.The entityType must satisfy the condition (expression) required to achieve the target.
Supported values: STORE, ZONE, CONCEPT.
entityIds*Array The IDs of the entities to which the is filter applied on.
nameStringThe name identifier for the target.
targetEntityEnumThe KPI on which the target is tracked. Supported values: TRANSACTION, LINEITEM, EVENT, REWARDS.
To track the transactional KPIs, use TRANSACTION and LINEITEM .
To track the Behavioural or EMF events, use EVENT.
To track the tracking based on rewards such as points, use REWARDS.
eventNameStringThe behavioral name of the event that triggers the target.
targetTypeEnumThe type of target.

The system supports targets based on behavioural events (SUM, VISIT, and COUNT). To use SUM, set the value as EVENT_ATTRIBUTE and then define the details in the extendedFieldInfo object.
extendedFieldInfoObjectIncludes the details of the event attribute that needs to be tracked. This object is applicable only when targetType is SUM.
nameStringEvent on which the sum calculation is performed. For example, the number of adding to cart events.
aggregateFunctionEnumThe aggregate function checks whether the behavioral event is satisfied based on the sum.
Supported values: SUM
For example: To track total cart value, use SUM as your "aggregateFunction" with a related behavioural event to sum up the value and check against your target.
defaultValues*ObjectAn array of objects providing default values related to the target.
defaultValue*IntegerA default value used in the target evaluation.
streaksObject An array of streak information.
nameStringName of the streak.
targetCountOfSequenceIntegerThe number of times the user has to achieve the target to redeem the reward.
    "active": true,
    "description": "streak group",
    "name": "streakTestt123",
    "preferredTillId": 0,
    "trackingType": "STREAKS",
    "targetEvaluationType": "FIXED_CALENDAR_WINDOW",
    "totalPeriods": 1,
    "frequencyType": "CUSTOM",
    "periods": [
            "active": true,
            "description": "p1",
            "endDate": "2023-11-17T23:45:12.063",
            "periodStatus": "RUNNING",
            "refCode": "period44",
            "startDate": "2023-11-17T00:45:12.063"
            "active": true,
            "description": "p1",
            "endDate": "2023-11-20T23:45:12.063",
            "periodStatus": "RUNNING",
            "refCode": "period45",
            "startDate": "2023-11-18T00:45:12.063"
    "targets": [
            "active": true,
            "description": "streak",
            "expression": "currentTxn.value>500",
            "expressionJson": "{\"arity\":\"binary_operation\",\"value\":\">\",\"type\":\"boolean:primitive\",\"operands\":[{\"arity\":\"object_dereference\",\"type\":\"real:object:primitive\",\"operands\":[{\"arity\":\"name\",\"value\":\"currentTxn\",\"type\":\"tx:object:primitive\"},{\"arity\":\"name\",\"value\":\"value\",\"type\":\"real:object:primitive\"}]},{\"arity\":\"literal\",\"value\":\"500\",\"type\":\"number:primitive\"}]}",
            "filters": [
                    "entityType": "STORE",
                    "entityIds": [
            "name": "streakTestt123",
            "targetEntity": "TRANSACTION",
            "enrolmentMethod": "TRANSACTION",
            "targetType": "SALES",
            "defaultValues": [
                    "defaultValue": 500
                    "defaultValue": 1000
    "streaks": [
            "name": "streakTestt193",
            "targetCountOfSequence": 1
            "name": "streakTestt123",
            "targetCountOfSequence": 2

Response parameters

idintegerUnique identifier for the group.
namestringName of the group.
activebooleanIndicates if the group is active.
preferredTillIdintegerPreferred till ID, indicating no specific preference with 0.
totalPeriodsintegerTotal number of periods specified.
descriptionstringDescription of the /roup.
targetEvaluationTypestringType of target evaluation, e.g., "FIXED_CALENDAR_WINDOW".
targetCycleStartDatestring (date-time)Start date and time for the target cycle.
targetCycleEndDatestring (date-time)End date and time for the target cycle (if applicable).
frequencyTypestringFrequency type, e.g., "CUSTOM" (if applicable).
trackingTypestringType of tracking, e.g., "STREAKS" (if applicable).
fromDatestring (date)Start date for the setting (if applicable).
toDatestring (date)End date for the setting (if applicable).
recurringCyclesintegerNumber of recurring cycles specified (if applicable).
frequencyintegerFrequency value set for the setting (if applicable).
idintegerUnique identifier for each period.
startDatestring (date)Start date for each period.
endDatestring (date)End date for each period.
refCodestringReference code for each period.
periodStatusstringStatus of each period, e.g., "RUNNING", "NOT_STARTED".
targetGroupIdintegerIdentifier linking each period to a target group.
descriptionstringDescription of each period.
activebooleanIndicates if each period is active.
idintegerUnique identifier for each streak.
namestringName of each streak.
targetCountOfSequenceintegerTarget count of sequence for each streak.
idintegerUnique identifier for each target.
namestringName of each target.
targetTypestringType of each target, e.g., "SALES".
targetEntitystringType of entity targeted by each target, e.g.
eventNamestringName of the event associated with each target.
descriptionstringDescription of each target.
activebooleanIndicates if each target is active.
expressionstringExpression defining the criteria for each target.
expressionJsonstring (JSON)Target expression in JSON format for each target.
entityTypestringType of entity for the filter of each target.
entityIdsarray of integersIDs of entities for the filter of each target.
enrolmentMethodstringMethod of enrolment for each target.
defaultValuefloatSpecifies a default value for the target criteria for each target.
    "data": {
        "id": 32,
        "name": "TGF19",
        "fromDate": "2021-05-27",
        "toDate": "2021-05-28",
        "active": true,
        "preferredTillId": 0,
        "periods": [
                "id": 74,
                "attribution": {
                    "createdOn": "2022-03-28T13:28:32.602+0000",
                    "lastUpdatedOn": "2022-03-28T13:28:32.602+0000",
                    "lastUpdatedBy": {
                        "id": 75040399,
                        "code": "bukl.till",
                        "description": "",
                        "name": "bukl.till",
                        "type": "TILL"
                    "createdBy": {
                        "id": 75040399,
                        "code": "bukl.till",
                        "description": "",
                        "name": "bukl.till",
                        "type": "TILL"
                "startDate": "2022-03-29",
                "endDate": "2022-05-29",
                "refCode": "string",
                "periodStatus": "NOT_STARTED",
                "targetGroupId": 32,
                "description": "string",
                "active": true
        "activePeriod": {
            "startDate": "2022-03-28",
            "endDate": "2022-04-29",
            "refCode": "gdf123",
            "periodStatus": "RUNNING",
            "description": "Samplr description",
            "active": true
        "totalPeriods": 0,
        "description": "TGF19",
        "recurringCycles": 2,
        "frequency": 5,
        "targetCycleStartDate": "2021-05-28T08:41:00.529Z"
    "errors": null
Click Try It! to start a request and see the response here!