The following endpoints are used to create, update/maintain, and delete report definitions.  For more information about ACME report definitions, including information about query types and available fields, please review the ACME Reporting documentation.


Endpoints

Method


Endpoint


Actions


Request Payload


Response Payload


GET

/v2/b2b/analytics/report/definitions

Retrieve a list of all existing report definitions

None

List of Report Definitions

GET

/v2/b2b/analytics/report/definitions/{id}

Get a report definition object for a single report

None

Report Definition

POST

/v2/b2b/analytics/report/definitions

Create a new report definition

Report Definition

Report Definition

PUT

/v2/b2b/analytics/report/definitions/{id}

Update an existing report definition

Report Definition

Report Definition

DELETE

/v2/b2b/analytics/report/definitions/{id}

Delete an existing report definition

None

Deleted Report Definition


Sample Request Payloads

Simple transaction report with no grouping or filtering


{

    "name": "Transaction Report Sample Object",

    "description": "A sample payload for a report based on the Transactions dataset.",

    "displayCollectionName": "Transactions",

    "queryExpression": {

        "collectionName": "Transactions",

        "limit": 0,

        "findFields": [{

            "fieldName": "TransactionType",

            "include": true

        }, {

            "fieldName": "TransactionDate",

            "include": true

        }, {

            "fieldName": "EventName",

            "include": true

        }, {

            "fieldName": "Quantity",

            "include": true

        }, {

            "fieldName": "DiscountedAmount",

            "include": true

        }]

    },

    "dateSettings": {

        "dateRangeField": "TransactionDate",

        "datePreset": "today",

        "startDate": null,

        "endDate": null

    }

}

 

Transaction report with grouping, filtering, summarizing, and counting

{

    "name": "Transaction Report Sample Object",

    "description": "A sample payload for a report based on the Transactions dataset.",

    "displayCollectionName": "Transactions",

    "queryExpression": {

        "collectionName": "Transactions",

        "limit": 0,

        "findFields": [{

            "fieldName": "TransactionType",

            "include": true

        }, {

            "fieldName": "TransactionDate",

            "include": true

        }, {

            "fieldName": "EventName",

            "include": true

        }, {

            "fieldName": "Quantity",

            "include": true

        }, {

            "fieldName": "DiscountedAmount",

            "include": true

        }],

        "findQueries": [{

            "fieldName": "TransactionType",

            "operator": "contains",

            "fieldValue": "Sale,RefundSale"

        }],

        "groupFields": [{

            "fieldName": "EventStartTime",

            "groupFunction": "DayMonthYear"

        }, {

            "fieldName": "EventName",

            "groupFunction": ""

        }],

        "summaryFields": [{

            "fieldName": "DiscountedAmount",

            "summaryFunction": "Sum"

        }],

        "countFields": [{

            "fieldName": "OrderId",

            "countFunction": "Count"

        }]

    },

    "dateSettings": {

        "dateRangeField": "TransactionDate",

        "datePreset": "last_month",

        "startDate": null,

        "endDate": null

    }

}

Note: While reports that are grouped, summarized, and counted will only display the fields enumerated in the groupFields, summaryFields, and countFields objects, at least one field is required in the findFields object.


Sample Responses

Simple transaction report with no grouping or filtering


{

    "id": "5e1354d760309f414874eecf",

    "name": "Transaction Report Sample Object",

    "description": "A sample payload for a report based on the Transactions dataset.",

    "displayCollectionName": "Transactions",

    "queryExpression": {

        "collectionName": "Transactions",

        "findFields": [

            {

                "fieldName": "TransactionType",

                "include": true

            },

            {

                "fieldName": "TransactionDate",

                "include": true

            },

            {

                "fieldName": "EventName",

                "include": true

            },

            {

                "fieldName": "Quantity",

                "include": true

            },

            {

                "fieldName": "DiscountedAmount",

                "include": true

            }

        ],

        "limit": 0

    },

    "customReport": false,

    "createdOn": "Mon Jan 06 15:40:07 UTC 2020",

    "createdBy": "575",

    "updatedOn": "Mon Jan 06 15:40:07 UTC 2020",

    "updatedBy": "575",

    "dateSettings": {

        "dateRangeField": "TransactionDate",

        "datePreset": "today"

    },

    "isCurrentUserReportOwner": true,

    "acmeDefault": false

}

 

Transaction report with grouping, filtering, summarizing, and counting


{

    "id": "5e13548b60309f414874eecd",

    "name": "Transaction Report Sample Object",

    "description": "A sample payload for a report based on the Transactions dataset.",

    "displayCollectionName": "Transactions",

    "queryExpression": {

        "collectionName": "Transactions",

        "findQueries": [

            {

                "fieldName": "TransactionType",

                "fieldValue": "Sale,RefundSale",

                "operator": "contains"

            }

        ],

        "findFields": [

            {

                "fieldName": "TransactionType",

                "include": true

            },

            {

                "fieldName": "TransactionDate",

                "include": true

            },

            {

                "fieldName": "EventName",

                "include": true

            },

            {

                "fieldName": "Quantity",

                "include": true

            },

            {

                "fieldName": "DiscountedAmount",

                "include": true

            }

        ],

        "groupFields": [

            {

                "fieldName": "EventStartTime",

                "groupFunction": "DayMonthYear"

            },

            {

                "fieldName": "EventName",

                "groupFunction": null

            }

        ],

        "summaryFields": [

            {

                "fieldName": "DiscountedAmount",

                "summaryFunction": "Sum"

            }

        ],

        "countFields": [

            {

                "fieldName": "OrderId",

                "countFunction": "Count"

            }

        ],

        "limit": 0

    },

    "customReport": false,

    "createdOn": "Mon Jan 06 15:38:51 UTC 2020",

    "createdBy": "575",

    "updatedOn": "Mon Jan 06 15:38:51 UTC 2020",

    "updatedBy": "575",

    "dateSettings": {

        "dateRangeField": "TransactionDate",

        "datePreset": "last_month"

    },

    "isCurrentUserReportOwner": true,

    "acmeDefault": false

}


Notes:

The customReport attribute has been depreciated and is no longer in use.

Setting acmeDefault to true will lock the report so that no user (including an API user) can edit the report. To edit a locked report, set the acmeDefault attribute to false.