×

Create an account

Create an account to run demos. It is important that you use your full phone number, including your country code, when signing up.

Sign in

Signing in helps you use Tropo more efficiently.

Forgot your password?

Give us your email address, and we'll send you instructions on how to reset your password.

    Reset your password

    Create a new password below. Passwords must be at least 8 characters long.

      Inbound Self Service IVR for medical Allow patients to automatically request prescription refills or appointments.

      Browse the code

      How does it work?

      By utilizing Tropo developers can easily integrate backend systems and complex real-time communications together without any hardware. Self Service Interactive Voice Response is a perfect fit for enterprises wanting a low cost entry into Self Service applications.

      Customer Calls

      The customer calls your number expecting a lengthy transaction.

      Caller gets Routed

      Caller is routed to an intuitive, smart self service IVR that can handle most of their needs.

      Transaction occurs

      Customer finished self service transaction or asks to be routed to an agent for further help.

      The Code

      We created the Hotel Self Service IVR using the tropo scripting platform. This may not be idea for large self-services IVR’s but it is great for understanding how the TROPO API works.

      Take the tutorial
      ivr.js
      var newMonth = "";
      var newDay = "";
      var newYear = "";
      var howManyNights = "";
      result2 = ask("Welcome to Tropo Hotel.  Can I help you with a new or existing reservation?", {
          	choices:"new, existing, agent, something else",
          	attempts: 3,
          	onChoice: function(event) {
              	reservationChoice(event);
          	}
          });
      
      function reservationChoice(event){
      	if (event.value == "existing"){
          	ask("You chose existing reservation.  We see from your phone number your booked for checkin on December 19, 2015.  Would you like to cancel this reservation?", {
          	choices:"yes, no",
          	attempts: 3,
          	onChoice: function(event) {
              	cancelReservation(event);
          	}
          	});
      	} else if (event.value == "new"){
          	ask("Alright new resevations.  Which month would you like this reservation for?", {
          	choices:"january, february, march, april, may, june, july, august, september, october, november, december",
          	attempts: 3,
          	onChoice: function(event) {
              	newMonthReservation(event);
          	}
          	});
      	} else {
          	say("Thanks.  We are now transferring you to an agent");
          	transfer("+19803338415");
      	}
      
      }
      
      function cancelReservation(event){
      	if (event.value == "yes"){
         	say("Alright.  Your reservation has been cancelled.  Thanks for calling.");
      	} else {
          	say("Alright.  We are now transferring you to an agent who can help you make changes to your itinerary.");
          	transfer("+19803338415");
      	}
      
      }
      
      function newMonthReservation(event){
          	newMonth = event.value;
          	ask("Aright which date in " + event.value + " would you like to check in?  Please enter in the number on your keypad.", {
          	choices:"[1-2 DIGITS]",
          	attempts: 3,
          	mode:"dtmf",
          	onChoice: function(event) {
              	newDayReservation(event);
          	}
      	});
      
      }
      
      function newDayReservation(event){
          	newDay = event.value;
          	ask("Alright " + newMonth + " " + event.value + ".  Please enter in the year of your stay in the keypad.", {
          	choices:"[4 DIGITS]",
          	attempts: 3,
          	mode:"dtmf",
          	onChoice: function(event) {
              	newYearReservation(event);
          	}
      	});
      
      }
      
      function newYearReservation(event){
          	newYear = event.value;
          	ask("So how many nights would you like to stay for when you check in on " + newMonth + " " + newDay + ", " + newYear + "?  Please enter in the number on your keypad", {
          	choices:"[1-2 DIGITS]",
          	attempts: 3,
          	mode:"dtmf",
          	onChoice: function(event) {
              	newAmtDaysReservation(event);
          	}
      	});
      
      }
      
      function newAmtDaysReservation(event){
          	howManyNights = event.value;
          	ask("Thanks! So we have you staying with us for " + event.value + " nights on " + newMonth + " " + newDay + ", " + newYear + ".  Is this correct?", {
          	choices:"yes, no",
          	attempts: 3,
          	onChoice: function(event) {
              	newConfirmRes(event);
          	}
      	});
      
      }
      
      function newConfirmRes(event){
          	if(event.value == "yes"){
              	say("Great!  We have you booked for " + howManyNights + " nights on " + newMonth + " " + newDay + ", " + newYear + ".  Thanks for calling!");
          	} else {
              	ask("Alright let's try this again.  Which month would you like this reseration for?", {
                	choices:"january, february, march, april, may, june, july, august, september, october, november, december",
                	attempts: 3,
                	onChoice: function(event) {
                  	newMonthReservation(event);
               	}
             	});
          	}
      }
      

      Why Tropo?

      No Hardware

      Tropo is an in the cloud API which can power any type of Voice or SMS Real Time Communications. Nothing to buy, nothing to install, nothing to maintain. Easy to try out, easy to scale your wild success.

      Developer Friendly

      All you need is a text editor and a credit card and you can have a working app in minutes. Develop in languages that web developers are already familiar with: Python, Ruby, Javascript, and more.

      Build Anything

      All the sources for our demos are right on their pages, use them to jumpstart your app.