Printing As A Service with Metering

Usage Metering extension

This example stream showcases the Printing As A Service use case solution using Usage metering extension. For more information on Usage metering refer to Usage Metering

In this use case (Global Leader in Imaging), where instead of selling printers as products, the company sells printing as a service and charges its customers based on actual usage. In this example stream you will learn -

  • how to configure your products as meter types.

  • how to configure your stream using meter processor.

  • how to create a meter when customer installs a new printer.

This example stream also shows how to collect different usage events such as the number of printed pages, ink level, and printers' health status. After collecting the data the stream shows how to meter the collected usage per printer, printer ink status and health status before sending it to its final destination, in this case, the Log Function.

Note!

This stream needs a helper stream to be executed together to do configurations. Helper streams helps to configure meter types and meters which is usually done using APIs. Refer to setup guide Printing as a Service - Metering Setup Guide.

Functions Used in the Stream and Their Purpose

Part A - Input Data Simulation & Clean up

This step generates input data for the other parts of the stream and removes any generated duplicates.

  • Count - Counter that triggers the stream to run for the defined number of times.

  • Simulate Usage (Script) - Fills the rows with printer data (printed pages, ink level, printers' health status, and so on). This step substitutes real data input.

  • Validate - Filters out erroneous records. 

  • Deduplicate 1 - Filters out duplicated records.

Part B - Paper Usage

This step summarizes the number of printed paper sheets per customer and sends collected data to billing.

  • Normalize Fields (Field Organizer) - Renames the input data as per meter processor input.

  • Meter (Meter) - Sums up the monthly amount of printed paper sheets per printer.

  • Enrich CRM 1 (Script) - Maps printer IDs to companies.

  • Column Filter 1 (Field Organizer) - Renames the input data as desired.

  • To Billing (Log) - Stores data in a log. This step substitutes data being sent to a billing system.

Part C - Ink Level

This step checks the daily ink level per customer and triggers an ink order if needed.

  • Check Ink Level (Route) - Checks the ink level and if the threshold is reached. 

  • Deduplicate 2 - Filters out duplicated records to make sure low ink event is only processed once.

  • Enrich CRM 2 (Script) - Maps printer IDs to companies.

  • Column Filter 2 (Field Organizer ) - Renames the input data as desired.

  • To Order Ink (Log) - Stores data in a log. This step substitutes ink order service.

Part D - Health Status

This part checks the daily health status of printers and sends a request for maintenance if needed.

  • Maintenance (Route) - Checks printer health status (normal or maintenance require).

  • Deduplicate 3 - Filters out duplicated records to make sure the health status check event is only processed once per printer.

  • Enrich CRM 3 (Script) - Maps printer IDs to companies.

  • Column Filter 3 (Field Organizer) - Renames the input data as desired.

  • To Service (Log) - Stores data in a log. This step substitutes the order of maintenance service.

 

Validate Function

All records that are filtered by the Validate and Meter functions can be further processed and corrected using Data Correction.