Building an SMS Keyword Response Application

SMS keyword applications are designed to send customized SMS replies based on the ‘Body’ of the incoming text message.

When an SMS message is received at your Twilio phone number, your application will fetch the ‘Body’ request parameter of the message. Your application will then match the text of your incoming message with the keywords you have listed and send a reply.

The following is a PHP code example of a SMS Keyword Response Application, and you can find some code examples in other languages here. When an animal name messaged to a Twilio phone number, the definition of the animal is replied in response.


<?php

/* Include twilio-php, the official Twilio PHP Helper Library,
* which can be found at
* http://www.twilio.com/docs/libraries
*/

include('Services/Twilio.php');

/* Controller: Match the keyword with the customized SMS reply. */

function index(){
$response = new Services_Twilio_Twiml();
$response->sms("Reply with one of the following keywords: monkey, dog, pigeon, owl.");
echo $response;
}

function monkey(){
$response = new Services_Twilio_Twiml();
$response->sms("Monkey. A small to medium-sized primate that typically has a long tail, most kinds of which live in trees in tropical countries.");
echo $response;
}

function dog(){
$response = new Services_Twilio_Twiml();
$response->sms("Dog. A domesticated carnivorous mammal that typically has a long snout, an acute sense of smell, and a barking, howling, or whining voice.");
echo $response;
}

function pigeon(){
$response = new Services_Twilio_Twiml();
$response->sms("Pigeon. A stout seed- or fruit-eating bird with a small head, short legs, and a cooing voice, typically having gray and white plumage.");
echo $response;
}

function owl(){
$response = new Services_Twilio_Twiml();
$response->sms("Owl. A nocturnal bird of prey with large forward-facing eyes surrounded by facial disks, a hooked beak, and typically a loud call.");
echo $response;
}

/* Read the contents of the 'Body' field of the Request. */

$body = $_REQUEST['Body'];

/* Remove formatting from $body until it is just lowercase characters without punctuation or spaces. */

$result = preg_replace("/[^A-Za-z0-9]/u", " ", $body);
$result = trim($result);
$result = strtolower($result);

/* Router: Match the ‘Body’ field with index of keywords */

switch ($result) {
case 'monkey':
monkey();
break;
case 'dog':
dog();
break;
case 'pigeon':
pigeon();
break;
case 'owl':
owl();
break;
/* Optional: Add new routing logic above this line. */
default:
index();
}
Have more questions? Submit a request
Powered by Zendesk