Sorry to hear it didn't work as expected. When you say "it is not working" what exactly do you mean? Is the statement always evaluating to false making all the results appear as though all the chats were of type “Answered Chats”?
To find out where the issue resides, I would suggest testing each condition independently and identify which ones are misbehaving. If I was guessing, I would suspect your shift start / end is a date and your actual shift information is stored as a datetime. If that is the case, you need to extract the time portion of the chat for the comparison.
Example of independent condition testing:
If([ChatMissed] = True,’TRUE’,’FALSE’) as BooleanMissedChat,
If([ChatTime] >= [ShiftStart] ,’TRUE’,’FALSE’) as BooleanChatTimeGreaterThanShiftStartTime,
If([ChatTime] <= [ShiftEnd] , ’TRUE’,’FALSE’) as BooleanChatTimeLessThanShiftEndTime