Freshchat mobile SDK allows you to listen to user actions and related meta properties.


This feature is available starting with the following SDK versions,

  • Android: 2.7.0+
  • iOS: 2.7.0+

Based on your platform, you can listen to user events as follows.


Android

Register for user events

We recommend you to register this in onCreate of your Application class.

IntentFilter userActionsIntentFilter = new IntentFilter(Freshchat.FRESHCHAT_EVENTS);
getLocalBroadcastManager().registerReceiver(receiver, userActionsIntentFilter);

BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent == null || intent.getExtras() == null) {
return;
}

Event event = Freshchat.getEventFromBundle(intent.getExtras());
if (event != null) {
Log.d("Name", "Name : " + event.getEventName().getName());
Log.d("Prop", "Event Properties: " + event.getProperties());
}
}
};


Unregister for user events

You can unregister in onTerminate of your Application class.

getLocalBroadcastManager().unregisterReceiver(receiver);
NoteYou can checkout our video on 'Tracking user events' here: https://freshchat.wistia.com/medias/cmgpce0usa


iOS

Objective C

Register for user events

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(userActionEvent:)
name:FRESHCHAT_EVENTS
object:nil];

- (void) userActionEvent:(NSNotification *)notif {

FreshchatEvent *fcEvent = notif.userInfo[@"event"];
// Check with available event enum
if (fcEvent.name == FCEventFAQOpen){
// Log existing event meta / properties
NSLog(@"Event properties - %@",fcEvent.properties);
}
}

Unregister for user events

[[NSNotificationCenter defaultCenter]removeObserver: FRESHCHAT_EVENTS];


Swift

Register for user events

NotificationCenter.default.addObserver(self,selector: #selector(userActionEvent(_:)),name: NSNotification.Name(rawValue: FRESHCHAT_EVENTS),object: nil)

func userActionEvent(_ notification: Notification)
{
var fcEvent : FreshchatEvent? = nil
fcEvent = (notification.userInfo?["event"] as? FreshchatEvent)
//Check with available event enum
if fcEvent?.name == FCEventFAQOpen {
//Log existing event meta / properties
print ("Event properties - \(String(describing: fcEvent?.properties))")

}
}

Unregister for user events

NotificationCenter.default.removeObserver(FRESHCHAT_EVENTS)


Supported Events


Event Name
Description
FCEventFAQCategoryListOpen
When the FAQ category list is opened
FCEventFAQListOpenWhen FAQ list is opened
FCEventFAQOpen
When FAQ is opened
FCEventFAQSearch
When FAQ is selected from search result or search results canceled
FCEventFAQVote
When FAQ is voted
FCEventChannelListOpen
When the Topics list is opened
FCEventMessageSent
When a user message is sent
FCEventConversationOpen
When a Topic is opened
FCEventCsatOpen
When CSAT is shown to the user
FCEventCsatSubmit
When a user responds to a CSAT
FCEventCsatExpiry
When CSAT expires and is not shown to the user
FCEventLinkTap
When a user clicks an external link
FCEventScreenView

When Freshchat SDK screen is visible to the user

FCEventMessageReceive
When a user receives a message
FCEventNotificationReceive
When a user receives a Freshchat notification
FCEventIdTokenStatusChange
When a user's JWT token status changes
FCEventDropDownShow
When a drop-down message is shown to the user 
FCEventDropDownOptionSelect
When a drop-down option is selected by the user
FCEventCarouselShow
When a carousel message is shown to the user
FCEventCarouselOptionSelect
When a carousel option is selected by the user
FCEventCarouselOptionView
When a carousel view button is clicked by the user
FCEventCalendarFindTimeSlotClick
When a user clicks on the Find a slot button
FCEventCalendarInviteCancel When a user cancels a meeting invite
FCEventCalendarNoTimeSlotFound
When no meeting invites are available 
FCEventCalendarBookingSuccess When a user successfully books a meeting
FCEventCalendarBookingRetry
When a user retries booking a meeting 
FCEventCalendarBookingFailure
When user meeting booking has failed 
FCEventShowOriginalClick
When a user clicks on the live translations toggle button to see the agent’s original message
FCEventHideOriginalClick
When a user clicks on the live translations toggle button to hide the agent’s original message