Recent searches
No recent searches

Jason Kadlec
Joined Sep 18, 2024
·
Last activity Jan 14, 2025
Following
0
Followers
0
Total activity
9
Vote
1
Subscriptions
2
ACTIVITY OVERVIEW
BADGES
ARTICLES
POSTS
COMMUNITY COMMENTS
ARTICLE COMMENTS
ACTIVITY OVERVIEW
Latest activity by Jason Kadlec
Jason Kadlec created a post,
When looking through the conversation histories, I sometimes find people who never made it to the step to speak to a human / agent hand off and so there is no ticket made.
There is in info button (i) above the chat history where I can see a UserId and ConversationId but the user ID is a UUID, it's not the Zendesk Support Id, which is expected because not all chats are from logged in/identified users.
However, many chats are logged in/Identified users and I wish I could have someone going through chats on a daily basis to find people who did ask a question, got the ‘I’m sorry I didn't get that can you ask again" then the user bails, but I can see their question in the transcript anyway.
These are logged in users, who are identified ( I know this because I have a different flow for logged out users).
It would be ideal to surface alongside the MessengerUserID and ConversationId the external_id that was passed in via the JWT:
zE('messenger', 'loginUser', function (callback) {
callback(response.data.token)
})
Or even more convenient would be the Support User ID that the external_id is associated to.
Posted Jan 14, 2025 · Jason Kadlec
0
Followers
1
Vote
1
Comment
Jason Kadlec created a post,
I currently have a setup where the user clicks a button to apply for something and the application is actually served up out of our existing chat bot. This was a very handy and flexible way for us to not have to build out all kinds of tool tips.. people can click on something and the click passes in the context. The context allows me to route them to a specific response from the bot (we're using Dialogflow CX at the moment).
That kind of behavior seems like it should be possible with Messenger.
Here is the example from the Core API:
zE("messenger:set", "conversationFields", [ { id: "123456789", value: 100.50 }])
I can not understand how can I leverage in the flow builder field id 123456789 in the branch by condition, unless I first include that field in a request for more information step?
Nearly all the context data I'm passing in needs to be invisible to the end user. I'd like to pass in the URL they are on, what button they clicked on to launch the chat, what class of user they are (vip, regular etc).
I found the setting that forces a specific Answer to load first regardless of the intent. So far so good. I name this Answer/flow 'answer_init'
answer_init -> step 1 branch by condition if field 123456789 is "apply now" - transition to "apply now" answer/flow else, transition to general answer a question flow is a simple example of how context would route the chat to a specific answer before the user has even typed anything.
I have already created a text field that is editable by end users, and I have created a ticket and saved a value into that field to be sure it exists.
However, when I go to the flow builder, I do not see this field as an option for using in the branch by condition logic.. the only Ticket Fields that exist for me to select are Name and Email?
The Core API documentation mentions setting fields before the web widget is opened:
"Also, if you want to make sure that your conversation fields were set properly before opening the messaging Web Widget, then you would call:
const openWidget = () => { // your function to trigger messaging Web Widget to open} zE("messenger:set", "conversationFields", [ { id: "123456789", value: 100.50 }], openWidget)
Why can't I use a conversationField in the branch by condition without first using it in a more details step? In the example above, the whole idea is to set that data before the chat even opens?
Here are the use cases:
VIP vs regular users.. a VIP I might always transfer right away to a live agent and a regular user I would first deflect through chat...
This specific VIP vs. regular user can be done via REST api call, but that means a hit to our db for every chat window opened.
I have that data already available on the front end, I would like to just pass it to the chatbot, along with the URL they are currently on, possibly a button that was clicked to ask about a specific topic... there are a lot of use cases for the front end to pass context into the chatbot that allow us to start at a specific Answer, or end an existing conversation, and start over at a given Answer.
Let me know if I missed something obvious, but no matter what I've looked at, read or asked of Chat GPT..nothing seems to indicate what I want to do is possible:
Use the .js api to set a field, tag, or variable such that I can use that field, tag or variable in a branch by condition step without first including that field/tag/variable in some other step.
Posted Oct 02, 2024 · Jason Kadlec
1
Follower
2
Votes
2
Comments
Jason Kadlec created a post,
My understanding is that when using the JWT Authentication, when a live transfer step is reached in the flow builder, the external_id will first be used to locate the User Profile to then create the message/ticket.
If no profile is found with that external_id, then the email provided will be used.
I've tested this now multiple times and each time, a new profile is created with the email I provided, when there is an existing profile with that same email as the Primary Email.
The existing profile, the email is not verified.
The JWT contains both the parameters of the email, and that the email_verified = true.
When I don't include the email_verified = true, then a new profile is created, with no email at all.
In my messaging settings, I have the most relaxed setup to use both verified and unverified emails.
Does the fallback to match by email only work on verified emails? If so, is there a way I can pro-actively associate my external_id with the user profile I know it belongs to via api? (In our database because we do so much making of tickets over the API, we store the ZD User ID in our db alongside our own unique ID for a user… )
Posted Sep 25, 2024 · Jason Kadlec
0
Followers
2
Votes
2
Comments
Jason Kadlec created a post,
Use case:
I have a spot in my app where someone can click a button to fill out a form. I'm currently doing this via Google's dialogflow CX, and trying to move things into Messenger… the business work flow is that the form needs to be a ticket anyway, and we want to get onto those form submissions as quickly as possible.
In the Core API docs, it suggests the exact use case - to set a conversation field while also using the API to open the chat:
Also, if you want to make sure that your conversation fields were set properly before opening the messaging Web Widget, then you would call..
My question then is, how do I use this conversation field in the Flow builder? It seems that the only way that the branch by condition can use a conversation field is to first have a step before it in the flow builder that asks for that field to be filled. Now the field is selectable from the UI of the branch by condition.
But I don't want the user to be asked for this field first, it should be completely hidden from the user?
In actuality, the whole idea of using a conversation field to route to an answer is a hack… the product ask here is to add to the API the ability to force messenger to open to, or if already open, to jump over to some specified Answer such that regardless of what answer flow the user left off in, upon that API .js call, it would force Messenger to start at the top of the specified flow.
In my use case - it would be to go to the “apply now” Answer flow, which would have the request information step, so the user could fill out the application, or ask questions about it. Because they would be in the “Apply Now” flow, I can more easily route those questions to the team that works that part of the business.
Note this is not the only use case… there are other cases where there is no form to surface, but if someone clicks on a button that says “get more info about XYZ” - I would like to be able to pop open the chat, once again to the top of “XYZ Answer Flow" which could simply have the bot now say - here is the additional information about XYZ… did that answer your question or do you want to talk to someone?
Essentially this saves the user from having to type in their question if I can give them a button to click on.
Posted Sep 25, 2024 · Jason Kadlec
0
Followers
0
Votes
0
Comments
Jason Kadlec commented,
I plan to set custom fields or tags using the Core API:
zE("messenger:set", "conversationFields", [
{ id: "123456789", value: 100.50 }
])
How do I get the conversationField, or tag to show up in the conditions of the branch by condition?
For ticket fields, I only see email and name.
Messaging Metadata shows only Provided name, Provided email, Authenticated external ID and Authenticated Status.
I know I can set variables using REST api calls to my server, but in this case it's all about what page of my web application the user is on, and/or some button they clicked on, which I need to ‘hard set’ to go to an Answer that is specific to that.
Let's say I have a page of my site called “Playing in sandboxes” and they initiate their chat from this page.
I would
zE("messenger:set", "conversationFields", [
{ id: "123456789", value: sandboxes }
])
And then I would have an answer set as my default_open which would have as the first step a branch by condition which would check for this Ticket Field. If it was “sandboxes” I'm going to route to the answer where the first Send Message says: Hey I see you are playing in the sandbox! Great! Do you have a question for yourself, or your kid?
I don't want to have every interaction with the chat start with “how can I help you” when throughout my app there are pages where.. if the chat is initiated from that page there is a 99% chance I don't need to ask them how I can help.
The specific use case is more like a - click this button to connect to a Sandbox Expert… then the chat bot will load a form which gathers some pre-conversation questions.. then transfers to a live agent.
How do I do this?
View comment · Posted Sep 18, 2024 · Jason Kadlec
0
Followers
0
Votes
0
Comments
Jason Kadlec commented,
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?
View comment · Posted Sep 18, 2024 · Jason Kadlec
0
Followers
3
Votes
0
Comments