Chidi Okwudire IT Professional. ERP Enthusiast. NetSuite Certified (Administrator, SuiteCloud Developer II, and ERP Consultant). Celigo Certified (Level 4+). Passionate About Empowerment Through Knowledge Sharing. Always Eager to Learn.

Power Up Your NetSuite Investment with Slack Integration

4 min read

Have you ever thought of integrating NetSuite with Slack? This could open doors to exciting possibilities, reduced costs, and a better user experience. In this article, I illustrate how a Slack integration could work and how it can help your organization.


Introduction

Over the past few years, Slack has become ubiquitous in the workplace with businesses of all sizes embracing this “new way to communicate with your team”. This article is not about whether you should love Slack, hate it, or care less. It is about leveraging what the Slack platform has to offer to offer your NetSuite users the best possible experience and hopefully save some NetSuite license costs in the process.

Case Study

Before going into technicalities and considerations, let’s consider a Slack integration that I built for a client to power up their procurement process.

This client had invested heavily in a customized NetSuite approval workflow with multiple approval levels (in some cases, up to 5 approval levels were required for full approved).

Being a relatively large organization with several departments, it was not realistic to offer NetSuite licenses to everyone involved in the purchasing process, especially those who required view-only and/or occasional access. Unfortunately, NetSuite does not support the concept of “floating licenses” (i.e. a pool of licenses that can be dynamically allocated to a user on demand).

Consequently, the NetSuite team at that organization was receiving increasing queries from managers and others who were curious about the status of a purchase order (PO) that they were tracking. While most purchase requesters had NetSuite access, they complained about the number of steps to get into NetSuite and find a PO of interest just to track the status in the approval process. Moreover, for departments with low PO volumes, an ad-hoc PO creation process was introduced in which a PO would be created on their behalf by the NetSuite support team (or by another requester with NetSuite access). In such cases, the actual requester had no direct access to their PO in NetSuite and needed a way to query statuses, especially for time-sensitive POs. Finally, once a PO was approved, it was desirable to be able to quickly access the PDF for sending to the vendor.

The following clip (1:42) is a quick demonstration of the Slack bot that we built. We called it the “NetSuite Assistant” with a vision that more functionality will be added to the bot in the future to address other concerns.

Slack Integration Architecture

The Slack platform has a rich, well-documented API that can be leveraged to build bots like our NetSuite Assistant in the preceding demo. You can learn more about the Slack API in the official documentation.

NetSuite Slack Integration Architecture

There are three main parts in the integration architecture as illustrated above:

  1. The Slack bot (also known as a Slack app) is the part that your users interact with. It shows up as an application in the Slack workspace. A Slack bot can be created in a few easy steps described in the documentation referenced above.
  2. Slash commands are one of the means Slack enables interactivity with external applications. In our example, our primary slash command is /netsuite. As part of the bot configuration, we provide a Request URL which Slack will call (HTTP POST) each time the command is invoked in Slack. This Request URL needs to be accessible by Slack without any authentication. That’s where our backend Web App comes in. It brokers the connection between Slack and NetSuite. Directly connecting the Slack app to the RESTlet in NetSuite is not viable since RESTlets require authenticated access and Slack simply does not provide any mechanism to build that into the callback. The web app could be anything depending on what technologies you prefer. I used a simple Express.js app that I initially hosted (for free) on Heroku but migrated to a server managed by the client as per their company policy. I drew some inspiration from this somewhat outdated example.
  3. On the NetSuite side, a RESTlet processes incoming requests. This is NetSuite’s recommended way of integrating external applications of this type. NetSuite’s REST Web Services may work too but that offering is still in its infancy.

There is a lot more detail to go from this architectural pattern to an implementation. However, this post is not intended to be a complete and comprehensive guide. Instead, I aim at drawing your attention to what is possible. You will need technical expertise to realize this. Feel free to reach out if you’re seriously considering a (paid) implementation and need guidance and/or technical expertise. If I do not have the bandwidth to help you myself, chances are that I know someone who can.

Potential Benefits of a Slack Integration

There are many benefits a Slack integration can bring to your organization. Here are a few that readily come to mind:

  1. Cost Savings: Slack licenses are way cheaper than NetSuite licenses. By exposing relevant functionality to “lite” NetSuite users via a Slack integration, you can reduce your NetSuite license costs and realize significant savings.
  2. Better User Experience: NetSuite is not the fastest application out there. Moreover, if you don’t work in NetSuite regularly, some aspects of the user interface and navigation may feel unintuitive. On the other hand, your users are likely more familiar with Slack. Thus, bringing the functionality to them where they already spend their time will be convenient and likely result in a better user experience. Also, in our example, the number of steps and speed of querying a PO status and printing an approved PO via the Slack bot was at least half what it would take if the users were to log into NetSuite to do the same thing.
  3. Improved Security: A common feature of approval processes is email-based approval. The biggest drawback of this approach is that most implementations simply assume that the one who clicks the link in the email is the one who should be approving. It is difficult to validate the user without detracting from the convenience for which email approval exists in the first place. That could be a security concern. With Slack, we’re able to tighten that as we can validate the user interacting with the bot in the background e.g. by comparing their email address in Slack to the one on the target user’s employee record in NetSuite.

Considerations

Every integration comes at a cost. Beyond the one-time fees of building the integration, you need to think of ongoing maintenance/support costs. Also, a stated above, you will need someone with technical expertise to realize such a solution. If you don’t have those resources in-house, that could be a challenge. Moreover, there might be additional costs associated with your hosting the intermediary web app (tip: cloud providers like Heroku often offer a free tier that might suffice depending on your use case). There are also security considerations; while NetSuite offers a solid security framework, you need to be careful whenever you expose business data to other applications via an integration.

Never fall for the lie that an integration is a one-off exercise! Always look at the bigger picture to help you decide what strategy works best for you e.g. make vs. buy vs. ally vs. keep the status quo (and pay for more NetSuite licenses). At the end of the day, costs and user experience are not the only factors in a successful implementation. However, I suspect that, in most cases, the benefits will outweigh the costs. You need to do your homework though. Again, if you need help with a cost benefit analysis, feel free to reach out.

Conclusion

There are dozens of use cases for a Slack integration that come to mind. Sticking with the approval process for a bit, it is very feasible to incorporate PO approvals, approval reminders, and even PO creation into the Slack bot! We touched on slash commands but Slack offers other forms of interaction that can be leveraged to this end. I hope that this article has opened your mind to a world of possibilities that you may have not known exists and is within reach.

To all the NetSuite approval workflow vendors out there, consider this as a call (and an opportunity) to deliver more versatile approval workflows to your clients by offering them a Slack integration. Your clients deserve more!


NetSuite Insights is on a mission to raise the standards around NetSuite practices, one insight at a time. If that resonates with you, check out how you can become an author/collaborator here.

Also, consider subscribing to our no-nonsense email list to get these insights delivered to your inbox as soon as they’re published. Sometimes, ignorance is a choice. Choose wisely!

Chidi Okwudire IT Professional. ERP Enthusiast. NetSuite Certified (Administrator, SuiteCloud Developer II, and ERP Consultant). Celigo Certified (Level 4+). Passionate About Empowerment Through Knowledge Sharing. Always Eager to Learn.

Leave a Reply

Your email address will not be published. Required fields are marked *

You deserve to know as soon as we share a new NetSuite Insight.
We won't disturb you with anything else or share/sell your data.