HI,
I really would appreciate your help. I have been trying to resolve this issue for the past couple of days and I know for a fact it’s a simple alignment or conditioning of the nodes that I’m unable to work around it.
The system that I have built is for a small pre-book hailing cab services which has minimal text input interaction via WhatsApp except for the beginning when user sends a ‘hello’ or ‘hi’ messages which triggers the workflow. And all other subsequent interactions are based on clicking the buttons until eventually the user is prompted to enter the date and time and this is where the issue starts.
Key deciding nodes that I’ve used on my workflow
‘If FirstScreen Home Message’ node - (parameters that I’ve configured)
{{ $node[“Set - Extract Initial Info”].json.interactiveButtonReplyId }} - is empty > the TRUE route sends the user a welcome message and buttons to select.
OR
{{ $node[“Set - Extract Initial Info”].json.messageBodyText }} - is not empty > the False route continues with the button interaction conversation
So, case scenario 1 - new user types - hello Systems follows the True route - user responds to the button messages > has a series of interactions until the user is prompted to enter date. And this is where the system breaks and returns to the 1st screen welcome message, because the ‘If FirstScreen Home Message’ node identifies it as a text message.
KEY NODES
‘Airtable - Search Active Request’ node - Finds the user’s current active request and determines if the current user (identified by their senderId) already has an ongoing, incomplete conversation with the bot where the bot is waiting for a specific piece of information from them from a list of Status like - "Awaiting Service Choice”, "Awaiting Pickup Date”, "Awaiting Pickup Time”, etc ‘
If it is possible for you, I would suggest you to please have a look at this.
reason , I am suggesting this is because this will eliminate the problem entirely because the date/time input won’t come as plain text…it’ll be structured and easier to handle.
2. Use an “AI Agent node” to Check chat status from Airtable:-
Agent will decide:
– Is the user is in active flow?
– What are they expected to input next?
{To the point Agent will decided if it is a date or welcome message etc etc}
Then, we can as agent to output clean JSON output, which we can reference in our IF condition… instead of relying only on raw message types.
Basically A agent node with attached memory [with unique session id as person phone number - to keep track of chat] , we also attach the airtable as a tool and ask the agent to use this tool get the information from airtable and take the decision and give us result in json format that we can use in future nodes.
Ohh, as I am writing this , I realise what if you do something like this, not sure if it will work on not but please give it a try.
Your core problem is : your condition in the ‘If FirstScreen Home Message’ node that is, it treats any text message (like “2025-06-20 at 7 PM”) as a new ‘hello’ message and resets the flow. But at that point, user is just replying with date or time… not starting over. [Right?]
I think you need to change the logic in the ‘If FirstScreen Home Message’ node.
Here along with the other 2 conditions you should also check the user’s current status in Airtable.
Let’s say you’re storing the status in Airtable as: “Awaiting Pickup Date” or “Awaiting Pickup Time” or anything else
So in the ‘If FirstScreen Home Message’ node, add a new condition that says: If the message is text, AND Airtable status is one of:
– “Awaiting Pickup Date”
– “Awaiting Pickup Time”
…then do not treat it as a new hello, instead, route it to the correct next step (date/time handling logic).
Yes, these are the things that came to my mind. But if you think they are not correct, it might be because I’m not fully aware of your workflow. I’d love to know more about it so I can better understand and help find a solution.