In this post I will provide a step-by-step tutorial on how to send SMS text messages in PeopleSoft. I will be consuming Nexmo’s SMS API to send SMS messages. There are many SMS API services similar to Nexmo and there is no particular reason that I chose Nexmo over the other providers for this tutorial. I have some experience with using other providers and the quality of service is comparable across the board. There will be four main steps in this tutorial: creating a Nexmo account, importing Nexmo SSL certificates, importing custom objects, and testing the service.
Creating a Nexmo Account
The first thing that you will need to do is to create a free account with Nexmo. Navigate to their site and create a new account.
Be sure to enter a valid phone number for the setup. An SMS with a code will be sent to the mobile phone number that you enter. Input the code that you received on the next screen to get access to your account.
Once you are logged in, navigate to the “Getting Started” tab and make note of your API key, API secret, and test number. Then Click on the “your numbers” link to obtain your sender ID.
Make note of the sender ID that is assigned to your account. This will be the number that the SMS messages will come from.
Importing Nexmo SSL Certificates
In this step you will need to download Nexmo’s SSL certificates and import them into the PeopleSoft PSKeyManager. The primary URL that you will need to obtain the SSL certificates from is https://nexmo.com. You will need to download the root and intermediate certificates from this URL.
Then you will need to import the root and intermediate certificates into PSKeyManager. The whole process of importing third-party SSL certificates into PeopleSoft is already nicely documented here by Niraj Patil, so I suggest following the steps in that post to import the certificates. Alternatively, you can click here to download a Word doc version with pictures.
Importing Custom Objects
I have created an app designer project that contains all of the necessary objects to invoke the SMS API web service via Integration Broker in PeopleSoft. Click here to download the app designer project. After importing the project into app designer, you can login to the PIA to view the newly imported service operation that will be used for sending SMS messages. The service operation is located at PeopleTools->Integration Broker->Integration Setup->Service Operations. The service operation is named “SENDSMS_GET”. You can click on the “View Message” link to see the document template that will get populated when invoking the service.
The document consists of the elements that correlate to the information that you obtained in the first step of this tutorial.
Testing the Service
Before attempting to execute the web service via PeopleCode, it would be a good idea to test the service using the built in Service Opertaion Tester utility in the PIA first. To do this, you will need to navigate to PeopleTools->Integration Broker->Service Utilities->Service Operation Tester. Search for the “SENDSMS_GET” service operation. After you select the service operation, you will need to click the “Populate Document Template” link to input your Nexmo account details.
Input your Nexmo account information by clicking on the corresponding element name for each piece of data and typing in the value. The “text” field is the body of the SMS message, so you can put anything for this value.
After clicking the return button, you will be taken back the previous screen. Now you will need to click the “Invoke Operation” button to fire the Integration Broker message to send an SMS.
If the service operation is not working, then you will receive a popup error at this point. If the service operation is working, then you should receive an SMS message on the number that you inputted in the “to” field. The JSON response from Nexmo should also appear on the screen at this point.
If you are able to successfully invoke the service operation using the testing utility, then you can now confidently invoke the service operation using PeopleCode. Here is some code that you can use to send SMS messages from PeopleCode. I have also attached a copy of this code as a text file in the app designer project linked above.
I would recommend extending this sample code to be more robust by reading in the Nexmo account details from a setup table in the database. It would also be a good idea to parse the response message and implement some sort of error handling. Putting this code in a function or app class method that accepts phone number and message body parameters will make it easy to integrate anywhere in your application.
Sending SMS text messages from PeopleSoft using Nexmo’s SMS API is really simple after you perform this initial setup. My main use case for sending SMS messages from PeopleSoft is to send TOTPs to user’s cell phones for two-factor authentication. However, I believe there are many other ways that this functionality can be leveraged in PeopleSoft to enhance the application.