Tracking
Track events and user actions when the user starts a new conversation. Attach custom metadata to every conversation started via the SDK.
All the public APIs in the SDK should be called after initializing the SDK via Helpshift installWithPlatformId API
Adding Tags to Conversations
You can attach tags while reporting an issue by passing them to the configMap
object at the time of calling showConversation
. You can pass an array of strings with a key "tags"
which will get added as Tags when the issue is created.
If an object in NSArray
is not of type NSString
then the object will be removed from Tags and will not be added for the new conversation.
For example:
- Objective-C
- Swift
NSArray *tags = @[@"Hello", @"iOS"];
NSDictionary *config = @{@"tags":tags};
[Helpshift showConversationWith:self config:config];
let tags = ["Hello", "iOS"]
let config = ["tags":tags]
Helpshift.showConversation(with:self, config:config)
On tag names & compatibility
- Tags must be pre-created in the Helpshift Dashboard (Settings → Tags), otherwise they will be ignored.
- The attached tags must exactly match the tags present on the dashboard.
Attaching Custom Metadata to conversations
You can attach additional metadata to every new conversation started by the app user. This metadata can include properties like username, email, game scores, current game levels, and any other data needed to provide relevant context for each new conversation. You can attach custom metadata passing it to the config
dictionary at the time of calling any of the SDK X APIs (showConversation
, showFAQs
, showSingleFAQ
, showFAQSection
).
Example:
- Objective-C
- Swift
NSDictionary *customMetadata = @{ @"usertype": @"paid",
@"level": @"7",
@"score": @"12345"
};
NSDictionary *config = @{ @"customMetadata" : customMetadata };
[Helpshift showConversationWith:self config:config];
let customMetadata = [ "usertype": "paid",
"level": "7",
"score": "12345" ];
let config = ["customMetadata":customMetadata]
Helpshift.showConversation(with: self, config: config)
- Metadata should only be sent as String key-value pairs.
- Once customMetadata is set, if you want to reset it, then you’ll have to call the SDK X API with an empty dictionary, i.e.
let customMetadata = [String: String]();
let config = ["customMetadata":customMetadata]
Helpshift.showConversation(with: self, config: config)
Attaching Custom Issue Fields to conversations
You can attach Custom Issue Fields to every new conversation started by the user. A Custom Issue Field should have a key, a datatype, and a value. The Helpshift SDK allows the addition of Custom Issue Fields by using the cifs
key in API config dictionary.
These custom issue fields will be sent whenever an end user starts a new conversation or creates an issue via Smart FAQs.
As soon as an end user opens the conversation screen, they see a greeting message, and the conversation is considered active. All the modified Custom Issue Fields (updated during an active conversation) will only be sent with the next conversation that end user starts.
Example:
- Objective-C
- Swift
NSDictionary *cifs = @{ @"joining_date": @{ @"type":@"date", @"value":@1505927361535 },
@"stock_level": @{ @"type":@"number", @"value":@"1505" },
@"employee_name": @{ @"type":@"singleline", @"value":@"ABC" },
@"employee_address": @{ @"type":@"multiline", @"value":@"303,Joy plaza,Park street,Viman nagar.Pune-432123" },
@"salary_currency": @{ @"type":@"dropdown", @"value":@"Dollars" } };
NSDictionary *config = @{ @"cifs" : cifs };
[Helpshift showConversationWith:self config:config];
let cifs = [ "joining_date": ["type":"date", "value":1505927361535],
"stock_level": ["type":"number", "value":"1505"],
"employee_name": ["type":"singleline", "value":"ABC"],
"employee_address": ["type":"multiline", "value":"303,Joy plaza,Park street,Viman nagar.Pune-432123"],
"salary_currency": ["type":"dropdown", "value":"Dollars"]];
let config = ["cifs":cifs]
Helpshift.showConversation(with: self, config: config)
Possible datatypes to be passed into the config are:
Type | value | Comments |
---|---|---|
"singleline" | string | Single line string with character limit of 255 |
"multiline" | string | Multi line string with character limit of 100,000 |
"number" | string | String representation of number. For eg. "12345" |
"dropdown" | string | Drop-down options should exist for the given Custom Issue Field on dashboard. Value should be one of the values specified on the dashbaord for that dropdown. |
"date" | NSNumber | Epoch time in milliseconds. For eg. 1505927361535 |
"checkbox" | string | String representation of boolean. For eg. "true" or "false". This corresponds to the checkbox type custom issue field on dashboard. |
On Custom Issue Fields keys & compatibility
- Custom Issue Fields must be created in the Helpshift Dashboard (Settings → Custom Issue Fields), otherwise they will be ignored. Read more here.
Breadcrumbs
Breadcrumbs can be used to track events or end-user actions. It helps you to add debugging information regarding end-user actions, which will be passed along with every new conversation on Helpshift’s Agent Dashboard. To leave breadcrumbs, use leaveBreadcrumb:
API —
- Objective-C
- Swift
[Helpshift leaveBreadcrumb:@"any breadcrumb string"];
Helpshift.leaveBreadcrumb("any breadcrumb string")
Breadcrumbs are collected within the set breadcrumb limit. The limit is set under the SDK Configurations section for App Settings in the Helpshift’s Agent Dashboard. Breadcrumbs are collected in a FIFO queue. If you want to clear the breadcrumbs, use the clearBreadcrumbs
API —
- Objective-C
- Swift
[Helpshift clearBreadcrumbs];
Helpshift.clearBreadcrumbs()
- Applicable to SDK X v10.1.0 & above
- In the
leaveBreadcrumb
API, passing of formatted strings is NOT supported. It is recommended to pass data only in a simple String format. For example:"{\"key\":\"value\"}"
- JSON String, This is NOT supported"key - value"
- Simple string, This is supported
Debug Logs
You may wish to pass additional debug logs with every new conversation filed by an end-user on Helpshift’s Agent Dashboard. This can be achieved using addLog:
API —
- Objective-C
- Swift
[Helpshift addLog:@"any debug log string"];
Helpshift.addLog("any debug log string")
Debug logs are collected within the set debug logs limit. The limit is set under the SDK Configurations section for App Settings in the Helpshift’s Agent Dashboard. Debug logs are collected in a FIFO queue.
- Applicable to SDK X v10.1.0 & above
- In the
addLog
API, passing of formatted strings is NOT supported. It is recommended to pass data only in a simple String format. For example:"{\"key\":\"value\"}"
- JSON String, This is NOT supported"key - value"
- Simple string, This is supported
Tracking user-specific metadata
<<<<<<< HEAD
Update global user attributes
This API is meant to be used along with the new User Identity system. Use this API to update global attributes associated with the logged in user.
This API is meant to be used along with the new User Identity system. Use this API to update global attributes associated with the logged in user.
049c6e6 (iOS - Refactor identity-users page to identity-user-hub)
- Objective-C
- Swift
NSDictionary<NSString *, id> *attributes = @{
// Add attributes here
};
[Helpshift updateMasterAttributes:attributes];
let attributes: [String: Any] = [
// Add attributes here
]
Helpshift.updateMasterAttributes(attributes)
Update app specific user attributes
This API is meant to be used along with the new User Identity system. Use this API to update app specific attributes associated with the logged in user.
- Objective-C
- Swift
NSDictionary<NSString *, id> *attributes = @{
// Add attributes here
};
[Helpshift updateAppAttributes:attributes];
let attributes: [String: Any] = [
// Add attributes here
]
Helpshift.updateAppAttributes(attributes)