A while back our team was presented with a challenge of capturing responses from recipients of an sms campaign in cloud for customer. This proved challenging as there was limited functionality with regards to inbound sms's in cloud for customer and understandably so. There's no way in knowing which sms gateway provider a customer will choose to go with. The requirement is clear, an sms campaign will be created and messages will be sent out to a target group, then the business wants people to respond and capture these reponses just see who responded.
For the purpose of making this brief, I'll only focus on inbound sms integration. First I enhanced the standard campaign object to have an indicator to give users the option of opting to capture responses, this we called "Record Responses". Our 3rd party gateway provider wanted us to pass a unique identifier to link responses to, using that and the mobile number. We then decided to not use the standard SMS mash up service, we however did use that for creating tickets via sms. For this we needed our own custom way to capture what in most cases would be an sms template. For simplicity we just added a text box to capture the outgoing message using batch processing and campaign number as a reference.
When creating an sms campaign users are presented with the following:
The next thing we need was a custom object on which we can create all the actions for sending and saving responses. We'll also need a way for users to navigate to this object form the campaign. We decided to go with a link from the campaign to view sms responses.
The object needed to capture members of a target group, and also responses...my object definition was as follows. Before creating an instance of this object, we check if record response is true and if the campaign is active:
Lastly we created an inbound service for our custom object to be accessed by our gateway provider whenever theres a response. We created an arrangement and forward the authentication details to the provider. The service exposes an action for adding a response, from here we then have all numbers that responded along with the response. We also tick to confirm that a member of the target group responded.
One thing we do when the object is called via our web service or an sms response, using the campaign ID as a reference, we check if the contact is a member in that campaign, then continue to mark it as a response and capture the message. The purpose of my blog is for future reference or help someone who want's to see if its possible or thinking something similar.