October 31, 2018 | Written by: Luis Guirigay
Share this post:
We promised during The World Premiere of Domino V10 in Frankfurt on October 9 this year that we would provide access to the code you need to integrate Domino with Salesforce, ServiceNow, Slack, and Office 365. We are doing that here.
Before we give you the code, however, let’s explain the business case that can be solved with each scenario.
During the live demos, we described a fictional story about how a company called Domino Toymakers was about to launch their new toy “10,” which was poised to be a major success in the toy industry. In order to be prepared for the upcoming demand, Domino Toymakers wanted to make sure all key applications were ready for the launch.
We explained how, in using ApplicationInsights, our developer persona “Karen” was able to identify the most critical applications, and how, while using IBM Domino Mobile apps, she was able to provide access to existing Notes applications via their iPad.
We also showed how business users were able to take advantage of the new capabilities included in Domino V10 in order to extend the value of their existing Domino apps. What follows are the specific use cases for the different integration points.
All the integrations explained in this article were developed using the new NotesHTTPRequest and NotesJSON LotusScript classes, so we recommend you become very familiar with them as they introduce a new world of possibilities in terms of extending and integrating your IBM Domino applications with other platforms and systems.
Using Salesforce to create an expense report
In our demos, when an expense report is created and associated with Customer Travel, the app presents the option to associate the current report with a Salesforce opportunity.
While we won’t cover every single line of code here, we want to highlight the key actions:
- We use Salesforce search API to build the query string
- We send a HTTP GET request using the query string as parameter as well as the Auth token
- Once we get the result, we use a NotesJSONNavigator object to store the JSON result and then to navigate through
- We focus on the Accounts value and after creating a NotesJSONArray object, we capture all the different accounts in the result
- Once we built a new array with all the accounts, we ask the user to select a specific account and submit an additional Salesforce Search request based on the account selected
- Using another NotesJSONArray object we capture all the Salesforce opportunities associated with that account
Click here for the complete code and details.
Running IBM Domino Apps inside Office365
Another important thing we demonstrated that you that can do now is run Domino applications as registered apps inside Office365. For this code, we got help from ISW, one of our great IBM Business Partners in Australia. You can read their complete explanation in this blog.
Integrating your IBM Domino Applications with MS Teams and Slack
IBM Domino Developers have always loved how they could connect Domino to other platforms using ODBC, LSX, JDBC and more. But now, we take these integration possibilities to the next level by making it extremely easy to connect with other platforms both inside and outside of their organizations. We show how Domino can also communicate with external platforms like MS Teams and Slack.
Think about your own business processes that are based on Domino and also how you can now easily talk to an unlimited number of external processes and trigger multiple actions, making interacting with external vendor systems, cloud providers and others easier than ever. Finally, we not only offer the possibility to connect to external systems but also the impressive ability for these systems to communicate back and manipulate Domino data. New in IBM Domino 10, you can now use Node.js and Domino Query Language to communicate back to Domino at amazing speeds and be able to act on Domino data using Node.js…. Yes — Node.js!
Stay tuned as we will cover our work with Node.js and DQL on our next blog.
As you navigate the code, please note the following structure:
- When a sales quote is saved, based on the user selection (send message to) an agent will be triggered, establishing the connection with the external platform
- We implemented the idea of demo profile document so the different demo users could create their own Slack/Teams channels and be able to perform demos without having all messages going to a single “hardcoded” channel or space. When looking at the code, please note the WebHook URLs and Tokens are coming from the Demo Profile documents.
See the full code available via these files:
Click here for the complete sales quote form code.
Click here for the complete code for sending a message to an agent.
Click here for the complete code for the workspace script library.
Custom UI for IBM Verse
Another thing that users were very excited about with Domino V10, is the ability to customize the UI for IBM Verse. Once IBM Verse OnPrem 1.0.5 is released, you will be able to follow the documentation and instructions needed to implement custom UI extensions. We are giving you a sneak peek and have made the .css used for the demos available here, so you are ready to go once IBM Verse OnPrem 1.0.5 is out.
Click here for the complete code and details.
Have fun with Domino V10. We are excited about all that it has to offer, as well as working with you to help make all future versions as great as they can be.
Please note: the code samples published above are being shared under the following license https://opensource.org/licenses/apache2.0.php and IBM will not provide any support. The code in this blog post was used for demos and not for a production application, so it has not been optimized for production usage. Use at your own risk. Feel free to contact me if you have any questions.
Disclaimer – IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.