====== Two-Way SMS text with SMSWorks ====== ===== Requirements ===== * An account with SMSWorks * Incoming numbers configured at SMSWorks * In the IQX database, the following functions and procedures are needed: IQXLocalConversation, IQXLocalConversationContactClasses, IQXLocalConversationInsert, IQXLocalConversationSendURL, OutgoingSMSCETypes, IQXLocalConversationSendURL * In Maintenance | Database Setup | Web Pages the following items are needed: conversation.html, conversation.css, conversation.ctrl.js, paging.svc.js * In the IQX database, the following tables SMSIncomingNumber, SMSIncomingProblem, SMSTestLog, SMSWorksConfig are needed. ===== Setting Up ===== * Generate API key, secret & token in SMSWorks account website * Choose a UserName (normally SMSWorks) and Password that will be used by SMSWorks to call a WebHook provided by IQXHub that will receive and process incoming text messages from SMSWorks. (NB these are not a user name and password from the SMSWorks account - they are ones we set so that SMSWorks can authenticate with us). * Populate the SMSWorksConfig table with the Token (from SMSWorks) and the UserName, Password chosen above. INSERT INTO SMSWorksConfig ( SMSWorksConfigID,Token,ResponseURL,DivisionID,UName,PWord ) VALUES ( '1', '', 'https://pizza.iqxanywhere.net/job/IncomingSMS', null , 'SMSWorks', '' ); * Configure the functions OutgoingSMSCETypes & CustomSMSHTTPRequest * Upload the IncomingSMS.xml job to Maintenance | Databases Setup | System Jobs and Reports * Use the Create Hub For Web Services button in Maintenance | IQXWeb Setup | Profiles to create a User (normally SMSWorks as above) and User Class for a user matching the details (including password) set up in SMSWorksConfig above. * In Maintenance | IQXWeb Setup | User Classes Add IncomingSMS to the permitted jobs for the new user class * In the SMSWorks Account | Reply Numbers - set the response URL eg: https://pizza.iqxanywhere.net/job/IncomingSMS, and the Username and Password as set up in IQX Web Setup for each response number (NB in the case of non-Anywhere installations - a separate Hub will need to be configure to handle the incoming traffic) * In IQX Maintenance | Agency Setup - ensure that Contact Event Types are set up for SM / text messaging - you probably want incoming and outgoing. * Check that the Applicant and other phone types for mobile numbers include the **S** Capability. * In IQX Maintenance | General Settings set or check the following settings:\\ 30 - //Can send SMS Messages via E-Mail// set to N\\ 40 - //Can send SMS Messages via HTTP// set to Y\\ 90 - //The HTTP Request to use for SMS Messages// should be blank as the function will be used\\ 120 - //Default Contact Event Type Code for Sending SMS// set to the correct code\\ 450 - //Contact Event Class for Incoming SMS// set to the contact event type for incoming SMS\\ * Against the IQX User record for users who are going to be using Two-Way SMS, set one of the available incoming mobile numbers on the SMS Number view. (This must be done manually using numbers set up on the SMSWorks account web site , the buttons GetNewNumber and Release Number do not currently work). ===== Using ===== Once the system is configured, a mobile phone style icon appears on Applicant / Candidate form next to the Make Contact Event icon. This shows the chat history between the current user and the Applicant / Candidate. All SMS texts (in both directions and from all consultants) also appear in the Contact Event view as normal.