Slack Intent Tracking
Intents are an optional, advanced feature.
With Intents, you can roll up similar messages your bot sends to quickly see the combined metrics.
Here is how we define an intent:
- intent – object – (optional)
- name – string
- inputs – array
- input – object
- name – string
- value – string
- input – object
Intents can be sent for either inbound or outbound messages. Place the intent object at the root level of the JSON that you send for each inbound or outbound message.
Adding an Intent for an inbound message
Example: “What is the weather in San Francisco?”
{
"token": "...",
"team": {
"id": "T0RKXFPTP",
"name": "jessetest"
},
"bot": {
"id": "U16R8L1JA"
},
"message": {
"type": "message",
"channel": "D16RSST6W",
"user": "U0RKX8RDM",
"text": "What is the weather in San Francisco?",
"ts": "1517990867.000000",
"team": "T0RKXFPTP"
}
}
Define Intent
The message “What is the weather in San Francisco?” maps to the WEATHER_QUERY Intent with the “city” entity “San Francisco”
{
"name": "WEATHER_QUERY",
"inputs": [
{
"name": "city",
"value": "San Francisco"
}
]
}
Append the Intent JSON to the original message
{
"token": "...",
"team": {
"id": "T0RKXFPTP",
"name": "jessetest"
},
"bot": {
"id": "U16R8L1JA"
},
"message": {
"type": "message",
"channel": "D16RSST6W",
"user": "U0RKX8RDM",
"text": "What is the weather in San Francisco?",
"ts": "1517990867.000000",
"team": "T0RKXFPTP"
},
"intent": {
"name": "WEATHER_QUERY",
"inputs": [
{
"name": "city",
"value": "San Francisco"
}
]
}
}
Post the complete message to Dashbot
https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=incoming&apiKey=API_KEY_HERE
Make sure to set the ‘Content-Type’ header to ‘application/json’ and to replace API_KEY_HERE
with your api key.
Sample cURL
curl -X POST -H "Content-Type: application/json"
-d '{"token":"...","team":{"id":"T0RKXFPTP","name":"jessetest"},"bot":{"id":"U16R8L1JA"},"message":{"type":"message","channel":"D16RSST6W","user":"U0RKX8RDM","text":"What is the weather in San Francisco?","ts":"1517990867.000000","team":"T0RKXFPTP"},"intent":{"name":"WEATHER_QUERY","inputs":[{"name":"city","value":"San Francisco"}]}}'
'https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=incoming&apiKey=API_KEY_HERE'
Notice, you must replace the placeholder API_KEY_HERE
above with your api key.
Note
Notice that the Intent object is for each message in the array of messages (which is inside the entries array).
Adding an Intent for an outbound message
Example: “The weather is 68 degrees and sunny.”
{
"token": "...",
"team": {
"id": "T0RKXFPTP",
"name": "jessetest"
},
"bot": {
"id": "U16R8L1JA"
},
"message": {
"type": "message",
"text": "The weather is 68 and sunny.",
"channel": "D16RSST6W"
}
}
Define Intent
The message “The weather is 68 degrees and sunny.” maps to the WEATHER_RESPONSE Intent with the “forecast” entity “68 and sunny”
{
"name": "WEATHER_RESPONSE",
"inputs": [
{
"name": "forecast",
"value": "68 and sunny"
}
]
}
Append the Intent JSON to the original message
{
"token": "...",
"team": {
"id": "T0RKXFPTP",
"name": "jessetest"
},
"bot": {
"id": "U16R8L1JA"
},
"message": {
"type": "message",
"text": "The weather is 68 and sunny.",
"channel": "D16RSST6W"
},
"intent": {
"name": "WEATHER_RESPONSE",
"inputs": [
{
"name": "forecast",
"value": "68 and sunny"
}
]
}
}
Post the complete message to Dashbot
https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=outgoing&apiKey=API_KEY_HERE
Make sure to set the ‘Content-Type’ header to ‘application/json’ and to replace API_KEY_HERE
with your api key.
Sample cURL
curl -X POST -H "Content-Type: application/json"
-d '{"token":"...","team":{"id":"T0RKXFPTP","name":"jessetest"},"bot":{"id":"U16R8L1JA"},"message":{"type":"message","text":"The weather is 68 and sunny.","channel":"D16RSST6W"},"intent":{"name":"WEATHER_RESPONSE","inputs":[{"name":"forecast","value":"68 and sunny"}]}}'
'https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=outgoing&apiKey=API_KEY_HERE'
Notice, you must replace the placeholder API_KEY_HERE
above with your api key.
Note
Notice that the Intent object is for each message in the array of messages (which is inside the entries array).
Tracking Events in a Conversation
Events
You may wish to track certain events in conversations, such as:
- External URL Clicks
- Social Shares
- Revenue
- Anything else…
JSON Format
The JSON that you can send to track an event is:
- name – string (required)
- userId – string (required)
- conversationId – string (optional)
- type – enum (required)
- customEvent
- revenueEvent
- shareEvent
- pageLaunchEvent
For each event type, you can pass additional properties:
customEvent
- extraInfo – object (optional)
revenueEvent
- amount – number (required)
- referenceNumber – string (optional)
- metadata – object (optional)
pageLaunchEvent
- extraInfo – object (optional)
shareEvent
- sharedMessage – object (optional)
referralEvent
- name – string (required)
- ref – string the referral tag (optional)
- source – string the referral source (eg. ADS, WEB) (optional)
- adid – _string an ID to identify the ad (optional)
- refereruri – _string the URI that sent the referer(optional)
Tracking Custom Events
Post to the endpoint
https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=event&apiKey=API_KEY_HERE
Make sure to set the ‘Content-Type’ header to ‘application/json’ and to replace API_KEY_HERE
with your api key.
The data to POST should pass the following data:
{
"name": "trackMeEvent",
"type": "customEvent",
"userId": "967295313370594",
"extraInfo": {
"start": 1500504070512,
"difference": 374,
"end": 1500504070886
}
}
Sample cURL
curl -X POST -H "Content-Type: application/json"
-d '{"name":"trackMeEvent","type":"customEvent","userId":"967295313370594","extraInfo":{"start":1500504070512,"difference":374,"end":1500504070886}}'
'https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=event&apiKey=API_KEY_HERE'
Notice, you must replace the placeholder API_KEY_HERE
above with your api key.
Tracking Revenue Events
Post to the endpoint
https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=event&apiKey=API_KEY_HERE
Make sure to set the ‘Content-Type’ header to ‘application/json’ and to replace API_KEY_HERE
with your api key.
The data to POST should pass the following data:
{
"name": "boughtSandwich",
"type": "revenueEvent",
"userId": "967295313370594",
"amount": 17.45,
"metadata": {
"productName": "Ham Sandwich",
"sku": "abc123123"
}
}
Sample cURL
curl -X POST -H "Content-Type: application/json"
-d '{"name":"boughtSandwich","type":"revenueEvent","userId":"967295313370594","amount":17.45,"metadata":{"productName":"Ham Sandwich","sku":"abc123123"}}'
'https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=event&apiKey=API_KEY_HERE'
Notice, you must replace the placeholder API_KEY_HERE
above with your api key.
Tracking Page Launch Events
Post to the endpoint
https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=event&apiKey=API_KEY_HERE
Make sure to set the ‘Content-Type’ header to ‘application/json’ and to replace API_KEY_HERE
with your api key.
The data to POST should pass the following data:
{
"name": "Launched Detail Page",
"type": "pageLaunchEvent",
"userId": "967295313370594",
"extraInfo": {
"url": "https://www.dashbot.io/"
}
}
Sample cURL
curl -X POST -H "Content-Type: application/json"
-d '{"name":"Launched Detail Page","type":"pageLaunchEvent","userId":"967295313370594","extraInfo":{"url":"https://www.dashbot.io/"}}'
'https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=event&apiKey=API_KEY_HERE'
Notice, you must replace the placeholder API_KEY_HERE
above with your api key.
Tracking Share Events
Post to the endpoint
https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=event&apiKey=API_KEY_HERE
Make sure to set the ‘Content-Type’ header to ‘application/json’ and to replace API_KEY_HERE
with your api key.
The data to POST should pass the following data:
{
"name": "sharedLink",
"type": "shareEvent",
"userId": "967295313370594",
"sharedMessage": {
"text": "come check out this bot"
}
}
Sample cURL
curl -X POST -H "Content-Type: application/json"
-d '{"name":"sharedLink","type":"shareEvent","userId":"967295313370594","sharedMessage":{"text":"come check out this bot"}}'
'https://tracker.dashbot.io/track?platform=slack&v=11.1.0-rest&type=event&apiKey=API_KEY_HERE'
Notice, you must replace the placeholder API_KEY_HERE
above with your api key.