I've been working on an alternative solution to using non-keyword responses. I've been able to get that part working, however, when I try adding an AMPscript function to add or update a data extension record, I get an error thrown at me saying "There was an error processing your message".

Here's what I have set up:

Outbound message: "Hi! Would you like to receive more mobile messages? Reply Y or N

var @nxtkywrd 
set @nxtkywrd = CreateSmsConversation("85240",MOBILE_NUMBER,"Next_Keyword","MOBILECONNECT")

Text Response message:

%%[ VAR @message
IF (Uppercase([MSG(0).NOUN(0)]) == "YES") OR (Uppercase([MSG(0).NOUN(0)]) == "Y") THEN
SET @message = "Thank you for consenting to receive messages."
SET @message = "Ok, no more messages"

%%[ VAR @response
SET @response = v([MSG(0).NOUNS])

The text response works without the UpsertData function. I've tried InsertData, UpdateData, but none seem to work. Any suggestions?

Thanks! Sean

  • Cameron, thanks for the suggestion, however, I'm still getting the same error with your approach. I did remove @response from the code since it wasn't getting used but I'm still at a loss for why it's not working. What I'd like to do is store and submit what a user would reply with, whether that's a one word/letter or a short phrase response in a data extension. – Sean Mar 20 '17 at 16:37
  • would you be able to share details on "I've been working on an alternative solution to using non-keyword responses. I've been able to get that part working"? We're trying to do this too for a private shortcode and I'd like to ask you some questions about it. Thanks! Kevin – Kevin Moran Nov 21 '17 at 16:59
  • Is this resolved ? I came across the same issue and you need to do something like this SET @response2 = UpsertData('Data_Extension',1,'Mobile_Phone',MobileNumber,'Text_1_Response',@response) – JRR Jan 15 at 14:17

You were very close Sean! I was able to get your code working as follows:

VAR @msg,@response,@inbound
SET @inbound = [MSG(0).NOUN(0)]
IF Uppercase(@inbound) == "YES" OR Uppercase(@inbound) == "Y" THEN
    SET @msg = "Thank you for consenting to receive messages."
    SET @msg = "Ok, no more messages"


  • AMPScript code for the Mobile Number of the customer is "Mobile_Number"
  • You don't need v() inside an AMPScript Block to capture values.
  • Changed the UpsertData function to explicit YES and NO, as it looked like you were capturing subscription flags.

Hopefully this gets you closer to achieving your goal!

  • It doesn't work for me. My Text Response message only has this %%[ UpsertData('InnovationDE',1,'phone',Mobile_Number,'last',"Yo Yo") ]%% – Maneesh May 23 '17 at 16:45
  • Hi @Maneesh, double check the 'phone' reference in your call - this may need to be 'Mobile_Phone' as in my example above. Also assuming the DE has the field 'last' as a [text] type? – Cameron Robert May 30 '17 at 1:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.