Customizing Rossum Functionality Using Extensions

While Rossum offers rich data capture capabilities out of the box, adding custom functionality is often crucial to making the day-to-day process efficient. The Rossum Extension Environment allows extending the validation process with extra activities that the Rossum platform does not do by default. For example, cross-checking sums, pairing extracted data against your database, or modifying the export data to meet the needs of your external ERP system.

Custom Logic is Important

We came to the premise of Rossum extensions from two angles.

First, every successful data capture process should be built such that 90% of documents are seen by a human at most once. It is not good if the operator first opens a document in Rossum and then again in the target system. However, every data capture process is different. It has its own requirements, which means that customization is inevitable in such cases.

Second, we believe that anyone should be free to customize their process on their own terms. A frequent approach is that any customization means a vendor customizes the core platform, building a specific version. We think that it is best if whoever is the integrator has all the tools to do it on their own. Keeping the implementation in the hands of a single party makes integration faster, cheaper, and more agile.

Implementing Custom Logic

These beliefs made us build an open API platform around the Rossum solution. This platform allows external services to reach deep into the Rossum flow. And importantly, the API is two-way. Not only can your extension call the API, but the API will call back your extension anytime something happens (using the Webhook interface). It reduces polling for batch jobs and allows a fundamentally higher level of integration. We mean that your code is called even anytime someone edits a field during validation. And your code can react – say, interactively show a message or dynamically adjust the set of options available in the drop-down enum field.

For the API to call your extension, it must run non-stop as a microservice implementing the requisite interface and on a public IP address. If there is no good place in your infrastructure to run such a service, this is a good moment to try your hands on cloud deployment and spin up a micro instance, say in AWS. But development can still be easily done on your computer.

We are working hard on providing tons of examples of microservice extensions. So far, to get you started: