Recent searches


No recent searches

Using Messaging Metadata with the Zendesk Web Widget and SDKs



Edited Oct 28, 2024


1

22

22 comments

Hello! Quick question, how is this different from the "Ask for details" step that is currently offered in the Flow Builder UI? 

0


Is there any way we can update conversation fields when using Web Widget classic? 

0


Can i use metadata to assign the email, so i don't need to ask that information to the end user?

5


Federico Costa of course.

Allison Sargent this is different because ask for details asks the questions to the customer whether here you can populate the answer based on information of your website without asking.

 

@Zendesk Can you certify that others metadata than the 4 about authentication (mail, name, external id, status) can be used as variables in the flowbuilder please??

 

It would be nice that you add screenshots to reassure people that metadata are shown in the flow builder

0


image avatar

Oscar Mejias

Zendesk Customer Care

Hi Allison -

The answer type "Ask for details" is the flow builder step that allows your end users to interact with conversation fields. Now, these conversation fields could either be filled out manually by the end-user or they can be pre-filled with metadata through clients API. 

This is where Using conversation metadata with the Zendesk Web Widget and SDKs comes into play.

I hope that clarifies!

0


Hi thanks for this feature but I faced a problem in displaying tags in existance conversation if the conversation is new then tags and custom field is show but on existence conversation tags and custom fields not show

0


image avatar

Dane

Zendesk Engineering

Hi M. Wahab,
 
Are you pertaining to the actual bot builder fields or is it a scenario when there is an existing conversation and the tags and field no longer show for your customers? Can you elaborate further?

0


Hello @Dane, originally, we incorporated the Zendesk messaging SDK into our application for live customer support. Currently, there is a need to transmit specific custom data, such as the user's city, to Zendesk chat. Fortunately, we identified the Zendesk metadata feature in the SDK and attempted to send the city as a TAG within the conversation using the following code

Zendesk.instance.messaging.setConversationTags(list);

However, in existing chat conversations, the city tag does not appear in the conversation agent panel. Conversely, when initiating a new conversation with the user, the city tag is displayed in the conversation agent panel.

0


image avatar

Dane

Zendesk Engineering

Hi Wahab,
 
Based on Messaging Metadata, it will only be added to new conversation or if the end-user have sent a message in existing conversation. Just in case you are experiencing an unexpected behavior, you can contact our support directly for further investigation.

0


I have a scenario where only half of 'our' customers have email addresses. Yes hard to believe but many older folk don't have an email address and prefer to interact over the phone. We are legally bound to provide services via phone.

We would like to offer customers who don't have email a way to submit a 'callback' request and have their phone number identify their profile in Zendesk when they reach out via messaging so requests (tickets) are created under the same profile.

Currently I can't find an easy way that this can be done, if at all. The fields we want them to complete when asking for a 'callback' are Name, Phone Number (at present this is a custom field as the standard identifier user phone number 'field' is not accessible in messaging) and Preferred callback time (custom field).

Funnily enough, if a user exists in Zendesk with ONLY a phone number (direct line), the talk channel correctly ID's the caller with their standard identifier user phone number 'field' each time they call (as long as the caller ID is not blocked), the ticket is created under the same user profile - perfect. Callbacks on the classic widget ID the user via the entered phone number as well.

However, currently there is no way to reconcile the Phone Number custom field with a user contact phone number (direct line) in Zendesk via messaging.

Here is a small loom that helps illustrate the issue.

When the customer completes the phone number field, this is simply a custom field and doesn't identify with the customer real profile in Zendesk (which has a standard identifier phone number 'field') - this results in many end users with the same name and not under the single/same profile. Lot's of searching, merging and not very good for agent efficiency.

I can't even direct customers to a form on the help centre as you must have an email address to submit a form and even if they entered in a junk address, the same issue would occur with many user profiles created.

Does anyone know a way to solve this? I'm guessing customers would need to login to our system first (web portal) which is not feasible as we want to offer the widget and contact options to customers without an account with us as well. They could exist in Zendesk but not in our system.

I see the best way forward is to offer the standard identifier phone number 'field' as an option in the 'Ask for details' step - similar to asking for their email address.

It looks like this standard identifier can already perform the function of matching a user but it's just not available in messaging, but the email standard identifier is. What's the difference?

0


image avatar

Dane

Zendesk Engineering

Currently, phone number is not supported as well as numeric custom fields. 
 
What I did on my end, is to create a custom text field for phone number and have added a specific message on how to enter the correct format.
 

 
Afterwards, I have created a webhook for user update.
 
This is the endpoint I used: https://<yoursubdomain>.zendesk.com/api/v2/users/{{ticket.requester.id}}.json
 
 

 
I have created a trigger using this endpoint.
 

 

 
This is the JSON Body:
 
{
"user": {
"phone": "{{ticket.ticket_field_<Field Key>}}"
}
}
 
The only issue here is the customer can make mistakes on entering the phone number.

0


Hi Dane

Many thanks for providing this solution. Really appreciated.

Unfortunately this doesn't quite solve the problem. In my testing, each messaging 'chat' created a new end user with the same Phone Number under their contact. It doesn't actually create the ticket under the single profile. I think the phone number is added a shared number.

I think it has something to do with user identities but manipulating a user identity from a webhook is either way too hard for my feeble brain or not possible ;)

The only solution I can think of is to create a process using the API to search users based on their phone number, if a user is found (already exists) then merge these two profiles together.

Problem is we'd have to store the user ID somewhere so we can use to execute the merge.

Thanks for your help though. Would be great to be able to add the user Phone Number 'field/identity' to a messaging bot flow to identify users based on the phone number.

0


image avatar

Dane

Zendesk Engineering

Don't worry Chad. Our Product Team confirmed that it's already in the roadmap for this year.

1


image avatar

Bobby Koch

Zendesk Luminary

will there ever be a time we can just call the zendesk crm for this data? we have the user authenticated, we should be able to use that data in the flow by calling the user api. building these out after already doing the authentication peice is going to be hard to get resources allocated to, and it seems lke it should be possible

1


Dane 

I am working on Messaging, Bot and Automation. I want to add custom field for my bot, can you please suggest a way to add these custom field for the Bot. I have created custom field and enabled it for end user. However, I can't see those in my custom field of Bot.

Is there a different way to add custom fields for Bot and automation?. I have searched a lot through the documentation and community but did not get a satisfactory answer.

I am simplifying my requirement, I am moving to Bot and Automation and testing bots for messaging. 

Under Admin Centre > Channel > Messaging > Edit Bot > Under responses you get this section as shown in the image.

 

I have created custom field for Number and other details however and I can't find it under the customer details dropdown. There are only 2 predefined sections here Name and Email. Is there a way to add more fields. Please suggest.

 

0


Chad Susa (Gravity CX - Zendesk Partner) 

Thank you for the response. It is helpful.

0


Two questions:

  1. Can fields be updated after the ticket is created? For example, in our app, an account has multiple user profiles (a la Netflix), and if the user switches profiles we'd like to be able update the field.
  2. How does one populate a date field, specifically in iOS? I tried setting the field value to a fomatted date string or by passing the date object into the SDK, but neither one worked. I see in the docs that fields can either be strings, numbers or Booleans, but since a string didn't work, and a Boolean doesn't make sense, does a date need to be a number? If so, how do we represent it?

Thanks in advance for your answer.

0


Hi Gary,

Can you please confirm if Multi-line can be displayed in the conversation?  I've tried, but I can't seem to access it in the Bot Builder.

0


We're building a chat with 100% custom UI using Smooch SDK's.
I have created a custom field for “App Market” which I would like to use to send metadata about the users selected market/country. The idea is to use this value in a trigger to assign tickets to different agents.
But I'm having trouble finding a way to set that metadata from the app using your SDK. We are using Sunshine Conversations for iOS and Android (Smooch)
The class reference for iOS only lists a getter for metadata. 
https://docs.smooch.io/api/ios/Classes/SKTConversation.html#/c:objc(cs)SKTConversation(py)metadata

Do we need to use the REST API  to set the metadata?

The REST endpoint I'm thinking of using.
https://docs.smooch.io/rest/#operation/updateConversation

0


I'm confused on something pretty basic… I want to use variables in branch by condition steps in the flow builder.

I do not want users to have to set these variables, I want them to be always set by the .js api using things like button clicks or even the current URL the person is on.

 

In the flow builder, I have to add a "Set Variable" step before the branch by condition step, and I can't save the ‘set variable’ with no value, so I have to type one in.

 

The problem is that I'm trying to create a default_start answer which I want to check the variable, and based on that variable's content, start up a specific answer that matches the context I know them to be in (by the variable).

 

But if opening the chat for the first time starts the default_start answer, and the first step of that answer is to set the variable to “start_init” - that will overwrite whatever the API would have passed in when the chat first opens?

What's an alternative way to achieve this goal:

I have a web application and people will start a chat from either clicking on the chat icon, or by clicking on a button.

 

Clicking on the chat icon ideally needs to load a different Answer/Flow depending on where they are in the app …. I was hoping to pass the current URL into the variable when the chat gets opened. 

Clicking on a button in the app to open the chat needs already a specific answer loaded - for example the button says:

[ Click here to give me zebra facts ]

I want the click on that button to not trigger the opening “hi I'm the chat bot how can I help you”.. it should instead load the “Zebra Facts” answer which has the chat bot say a bunch of interesting zebra facts.

[Click here to apply to become a zoo keeper ] 
^ this would open the chat bot to an answer that has the application form in the chat window so they can apply/create the ticket etc. 

tl/dr - how do I route the initial click on opening a chatbot to go to a specific answer based on a variable set by the .js api.. without the flow builder overwriting the value?

3


Hello, thank you for the thorough article! 

Is there a way to pass down thses config fields from zendesk to the Ultimate chat bot? I am using that on Android with Zendesk SDK for Android but I don't know how to pull the custom fields to Ultimate dashboard. 

Thank you!

0


Please sign in to leave a comment.