As each project comes along, there’s something new to add to the OCI Arcade. It started off with the game and Autonomous Database. And then grew into including Kafka, Docker Swarm, Serverless with the FN Project, Terraform, OAuth, Ansible, In-Memory Data Grid with Coherence-CE and more recently with Arm. This time round we’ve adding in a Customer Relationship Management (CRM) solution. Why? Up to now, users has been a simple identifier to denote the scores and the events in the game. Nothing more; nothing less. By adding in a CRM into the mix, we’ve opening up the understanding about our contacts and customers providing a richer experience for those coming to the arcade. And ultimately, from a space where we are build, experiment and try something out – adding user profiles opens up endless possibilities. Check out the rest of this about how it’s changed and some of the things we needed to do to make this happen.
This is what it currently looks like (in the architectural form).

With a quick look at this architecture, you may wonder – “Where is the CRM?” The CRM that we are using in this implementation is one that come Out-Of-The-Box with Oracle APEX called Customer Tracker. If you haven’t seen or experienced Oracle APEX – check out this (here). It’s one of the different productivity applications that you click and install (and then start configuring). This is one of the very appealing things in this kind of environment.
This application runs like any other Oracle APEX application and it was good enough with the CRM data model – Customers, Contacts and Activities. There’s plenty more in there that I could include … (but I’ll save that for later).

Getting this up and going within Oracle APEX is simple … a few clicks to install.

It’s changed a little between the latest version 21.1 that I’m using here which is 20.2 – the import process. The Customer Tracker is now available directly on github (here).
The next bit was to expose a set of APIs that I can integrate into the game itself. The nice this is that the data model is a set of tables in the database. Which meant that using Oracle Rest Data Services (configured in Oracle APEX), I was able to create a set of APIs for Contacts and Activities that I needed.

Once I had configured these, then the process of integrating the Javascript frontend and these REST APIs was replicating the same API implementation design that I’ve done for the others. Because of the volume (or lack thereof), I’ve replicated the api-score method and calling these APIs directly.
I did have to update the frontend to allow for a person’s name to be added to the opening screen which now looks like this.

The last bit that needed changing was the automation.
- I’ve automated the creation of an Oracle APEX workspace (this is where apps live in APEX)
- I’ve automated the installation of the Customer Tracker productivity app
- I’ve configured an OCI Arcade Customer (that I’m using as the organisation)
- I’ve configured a custom flex field to store the OCI Arcade ID in the CRM
- I’ve automated the configuration of the REST APIs
All of this probably took me a couple of days to do (whilst doing other things). It’s nice to achieve this kind of work when there’s little time to do it.
Check out the git repository for the new additions.
If you want to try this out yourself or work on your own application, sign-up (here) for the free Oracle Cloud Trial. I’d be interested to hear your experiences and learn from others as well. Leave a comment or contact me at jason.lowe@oracle.com if you want to collaborate.
Automation is great! I introduced the Firmao CRM system to my company. Lots of business processes are automated, great! You can check the system because it has 14 days for free.
LikeLiked by 1 person
It’s great opportunity as you say to automate those business processes.
LikeLiked by 1 person