Tracking Events with External ID (Applicable to all channels)

Enterprise Applications can manage internal Identifiers that will be used to track events related to specific communication directed to mobile numbers while using this service. The API provides the external_id parameter that can be used at the API request level.

The following example is the API Call needed to deliver a message. In this case it is using a Syniverse Test Public Channel in the US, the message has a custom External ID (e.g. SessionID123456,msg001,20190712) that same ID can be used to monitor events and report back to internal .  Please note that the max allowed size for the external_id attribute is 1500 characters.

curl -X POST \
  https://api.syniverse.com/scg-external-api/api/v1/messaging/message_requests \
  -H 'Authorization: Bearer Access_Token1' \
  -H 'Content-Type: application/json' \
  -d '{
                "from":"channel:1KJPMkuHQkair_o15etpmg",
                "to":["+1813220xxxx"],
                "body":"Test Message!",
                "external_id":"SessionID123456,msg001,20190712"
}'

You should get a 200 OK response like this one:

{
    "id": "8WYC4Q5UnznRlDIWXmcp45"
}

Message is being sent from Application ID 2808 and there was a set of values included in the external_id that is present in all EVENTS related to that particular request_ID and it can be something you also see in reports.

{"attempt": 1, "event": {"evt-tp": "message_request_state_change", "fld-val-list": {"application_id": 2808, "company-id": 1063, "external_message_request_id": " SessionID123456,msg001,20190712", "message_request_id": "    "id": "8WYC4Q5UnznRlDIWXmcp45", "new_state": "COMPLETED", "previous_state": "ACCEPTED", "reason_code": "200", "reason_description": "SUCCESS"}, "timestamp": "2019-07-09T22:25:02.822Z"}, "event-id": "TmAZ5HB9QHGevcSN2tIwsA", "topic": "SCG-Message"}

 

{"attempt": 1, "event": {"evt-tp": "message_state_change", "fld-val-list": {"application_id": 2808, "company-id": 1063, "external_message_request_id": " SessionID123456,msg001,20190712", "fragments_count": 1, "from_address": "+16692373342", "has_attachment": false, "message_id": "zwcz6LhHgbTFDpgvsEvDy7", "message_request_id": "8WYC4Q5UnznRlDIWXmcp45", "mt_price": 0.015, "new_state": "SENT", "previous_state": "QUEUED", "reason_code": "200", "reason_description": "SUCCESS", "sender_id_alias": "axEEiQMMAwTf35Fxju36R3", "sender_id_id": "axEEiQMMAwTf35Fxju36R3", "to_address": "+1813220xxxx"}, "timestamp": "2019-07-09T22:25:04.34Z"}, "event-id": "U5vojYqzQAm8HEvkKzcptQ", "topic": "SCG-Message"}

 

The customer web-hook implementation can then process this composite field and implement the business/reporting logic accordingly.

 External_ID is also extremely  useful to share context information between alert applications and service management/bot automation process.

 

External ID for Context Management with Conversational Chat Bot AI 

Outside of it standard tracking and reporting function, external ID can be extremely helpful if used to share CONTEXT of alerts with external systems particularly any conversational 2Way channel application over SMS, WhatsApp, RCS, Apple Business Messenger, WeChat, PUSH, Facebook Messenger and others.   

 In this diagram we showcase a Syniverse Roaming Service (MPCC) that controls mobile data usage sending an alert to a Roaming Subscriber and using external_id for context sharing with an AI / Chatbot Application. So when the user replies back to the alert the AI System understands already what is the context of the communication. E.G. The user landed and has no roaming package and is asking what the options are for this particular country.

mceclip1.png

Similar integrations could be use for:

  • Fraud Alerts
  • Investment Alerts 
  • Promotional Campaigns
Was this article helpful?
0 out of 0 found this helpful

0 Comments

Article is closed for comments.