While Rossum offers rich data capture capabilities out of the box, adding custom functionality is often key to making the day-to-day process really efficient. The Rossum Extension Environment allows extending the validation process with extra activities that the Rossum platform does not do by default, such as cross-checking sums, pairing extracted data against your database or modifying the export data to meet the needs of your external ERP system.
We came to the premise of Rossum extensions from two angles.
First, we believe that every successful data capture process should be built such that 90% of documents are seen by a human at most once. It is no good if the operator first opens a document in Rossum, then in the target system again. However, every data capture process is different and has its own requirements – and this 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 that 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 simply makes integration faster, cheaper and more agile.
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). This reduces polling for batch jobs etc., but it also allows a fundamentally higher level of integration. Because what we mean by that is 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.
In order 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 a cloud deployment and spin up a micro instance say in AWS. But development can still be easily done on your own computer.
We are working hard on providing tons of examples of microservice extensions. So far, to get you started:
Updated about a year ago