{"id":21411,"date":"2019-06-11T06:23:34","date_gmt":"2019-06-11T05:23:34","guid":{"rendered":"https:\/\/developer.kore.ai\/?p=21411"},"modified":"2021-07-12T08:13:34","modified_gmt":"2021-07-12T07:13:34","slug":"context-object","status":"publish","type":"post","link":"https:\/\/multisite.korebots.com\/v9-0\/docs\/bots\/bot-builder-tool\/dialog-task\/context-object\/","title":{"rendered":"Context Object"},"content":{"rendered":"<section class=\"l-section wpb_row height_auto\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default\"><div class=\"wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><p><span style=\"font-weight: 400;\">The <code>Context<\/code> object is the container object that persists data for dialog execution and across all intents i.e. dialog tasks, action, alert &amp; info tasks, and FAQs. Kore.ai&#8217;s natural language processing (NLP) engine populates the intent identified, entities extracted, and history into this object. Keys from the <code>Context<\/code> object are used in the dialog task and intent transition conditions. Also, the <code>context<\/code> object can be accessed with additional system and session variables.\u00a0<\/span><\/p>\n<p>The syntax when using an\u00a0<code>Context<\/code> object key in a URL is to enclose the object name in double brackets as shown next:<br \/>\n<span style=\"color: #0000ff;\">https:\/\/quora.com\/<strong>{{context.entities.topic}}<\/strong>\/rss<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <code>Context<\/code> object can also be referenced in a script node as well as for dynamic values in an entity node and passed in the payload response to the Kore.ai SDK. You can update the <code>Context<\/code> object key values based on business logic to\u00a0influence the dialog task execution.<\/span><\/p>\n<p>The platform also creates and maintains Session Variables which can be referred to <a href=\"\/docs\/bots\/bot-builder-tool\/dialog-task\/using-session-and-context-variables-in-tasks\/\" target=\"_blank\" rel=\"noopener noreferrer\">from here<\/a>.<\/p>\n<\/div><\/div><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><p>The following table describes the <code>Context<\/code> object keys. These can be classified into Global and Dialog contexts based on when they are created and populated. <a href=\"\/docs\/bots\/bot-settings\/bot-sessions\/#Implementation\" target=\"_blank\" rel=\"noopener noreferrer\">Refer here for details<\/a>.<\/p>\n<table>\n<tbody>\n<tr>\n<th width=\"10%\">Key<\/th>\n<th width=\"10%\">Category<\/th>\n<th width=\"40%\">Description<\/th>\n<th width=\"40%\">Usage Example<\/th>\n<\/tr>\n<tr>\n<td width=\"10%\">intent<\/td>\n<td width=\"10%\">Dialog<\/td>\n<td width=\"40%\">The intent recognized by the NLP interpreter.<\/td>\n<td width=\"40%\"><b>Syntax:<\/b> <code>context.intent.&lt;&lt; intent name &gt;&gt;<\/code><\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">entities<\/td>\n<td width=\"10%\">Dialog<\/td>\n<td width=\"40%\">An array of key\/value pairs based on user prompts and recognized user input for those prompts.<\/td>\n<td width=\"40%\"><b>Syntax:<\/b> <code>context.entities.&lt;&lt; entity name &gt;&gt;<\/code>In the following code example, the <code>context.entities<\/code> object is used to access values for the amount and account names as a confirmation for a funds transfer between accounts<\/p>\n<pre>var today = new Date();\r\nif(today.getHours() &lt; 21)\r\n {\r\n   print(\"You have requested to transfer \" +context.entities.Amount + \r\n         \" USD from \" +context.entities.FromAccountName +\r\n         \" to \" +context.entities.ToAccountName + \" account. \" +  \r\n         \" Your funds will be shown immediately though transfer will be shown in tomorrow's date in your transaction history. Shall I go ahead? \");\r\n  }\r\n else\r\n {\r\n  print(\"You have requested to transfer \" +context.entities.Amount + \r\n        \" USD from \" +context.entities.FromAccountName +\r\n        \" to \" +context.entities.ToAccountName + \" account. Shall I go ahead? \" +\r\n         context.accdata[0].transactions.length);\r\n  }<\/pre>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">traits<\/td>\n<td width=\"10%\">Dialog<\/td>\n<td width=\"40%\">Traits set for the given context<\/td>\n<td width=\"40%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">currentLanguage<br \/>\n(introduced in ver7.1)<\/td>\n<td width=\"10%\">Global<\/td>\n<td width=\"40%\">the current conversation language<\/td>\n<td width=\"40%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">suggestedLanguages<br \/>\n(introduced in ver7.1)<\/td>\n<td width=\"10%\">Global<\/td>\n<td width=\"40%\">list of all languages detected by the platform from the user&#8217;s first utterance, presented in the order of confidence level. This will be reset at the start of each conversation.<\/td>\n<td width=\"40%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">history<\/td>\n<td width=\"10%\">Global<\/td>\n<td width=\"40%\">An array that contains the <code>nodeId<\/code> for each component using the NLP interpreter.<\/td>\n<td width=\"40%\">An array of objects defining the sequential and historical node path executed in the dialog flow.<\/p>\n<ul>\n<li><code>nodeId<\/code> &#8211; The dialog task flow ID for this node using node type and incremental numbering, for example, intent0, service2, and so forth.<\/li>\n<li><code>state<\/code> &#8211; The status of the object for the timestamp indicated. One of:\n<ul>\n<li><code>processing<\/code> \u2013 The Bots Platform begins processing of the node<\/li>\n<li><code>processed<\/code> \u2013 The node and node connections are processed, the following node is found but the dialog has not yet moved to that node.<\/li>\n<li><code>waitingForUserInput<\/code> \u2013 The user was prompted\u00a0for input but has not been received.<\/li>\n<li><code>pause<\/code> \u2013 The current dialog\u00a0task is paused while another task is started.<\/li>\n<li><code>resume<\/code> \u2013 The current dialog with the status of pause continues at the same point in the flow after the completion of another task that was started.<\/li>\n<li><code>waitingForServerResponse<\/code> \u2013 The server request is pending an asynchronous response.<\/li>\n<li><code>error<\/code> \u2013 An error occurred, for example, the loop limit is reached, a server or script node execution fails.<\/li>\n<li><code>end<\/code> \u2013 \u00a0The dialog reached the end of the dialog flow.<\/li>\n<\/ul>\n<\/li>\n<li><code>type<\/code> &#8211; The type of dialog task. One of:\n<ul>\n<li><code>intent<\/code> &#8211; The dialog task is a user intent or task.<\/li>\n<li><code>faq<\/code> &#8211; The dialog task is a knowledge graph.<\/li>\n<\/ul>\n<\/li>\n<li><code>componentName<\/code> &#8211; The name of the node.<\/li>\n<li><code>timestamp<\/code> &#8211; The JSON\u00a0date timestamp of the node execution, for example, <span style=\"color: #0000ff;\">1492794646000<\/span>.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">onHoldTasks<\/td>\n<td width=\"10%\">Dialog<\/td>\n<td width=\"40%\">an array of all tasks that are kept on hold while a conversation is in progress. This is a read-only list that you can use for evaluation purposes. (introduced in ver 7.1)<\/td>\n<td width=\"40%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">service node name<\/td>\n<td width=\"10%\">Dialog<\/td>\n<td width=\"40%\">A collection of objects for Service node executions.<\/td>\n<td width=\"40%\">\n<ul>\n<li><code>response<\/code> &#8211; Returns the request status and response body as a JSON payload.\n<ul>\n<li><code>statusCode<\/code> &#8211; The HTTP status code of the request, for example, <code>200 OK<\/code>.<\/li>\n<li><code>body<\/code> &#8211; The JSON payload response body from the service request.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">resultsFound<\/td>\n<td width=\"10%\">Dialog<\/td>\n<td width=\"40%\">True, if results are returned<\/td>\n<td width=\"40%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">message_tone<\/td>\n<td width=\"10%\">Global<\/td>\n<td width=\"40%\">An array of recognized tone emotions and scores for the current node in a dialog task.<\/td>\n<td width=\"40%\">\n<ul>\n<li><code>tone_name<\/code> &#8211; The name of the tone detected. One of:\n<ul>\n<li><code>angry<\/code><\/li>\n<li><code>disgust<\/code><\/li>\n<li><code>fear<\/code><\/li>\n<li><code>sad<\/code><\/li>\n<li><code>joy<\/code><\/li>\n<li><code>positive<\/code>\u00a0\u2013 A special tone used to\u00a0evaluate the general positivity of an utterance.<\/li>\n<\/ul>\n<\/li>\n<li><code>count<\/code><\/li>\n<li><code>level<\/code> &#8211; The level of the tone emotion ranging from -3 to +3. One of:\n<ul>\n<li><strong>+3<\/strong> \u2013 The user definitely expressed the tone emotion.<\/li>\n<li><strong>+2<\/strong> \u2013 The user expressed the tone emotion.<\/li>\n<li><strong>+1<\/strong> \u2013 The user likely expressed the tone emotion.<\/li>\n<li><strong>0<\/strong> \u2013\u00a0The user tone emotion is neutral.<\/li>\n<li><strong>-1<\/strong> \u2013 The user likely suppressed the tone emotion.<\/li>\n<li><strong>-2<\/strong> \u2013 The user suppressed the tone emotion.<\/li>\n<li><strong>-3<\/strong> \u2013 \u00a0The user definitely suppressed the tone emotion.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">dialog_tone<\/td>\n<td width=\"10%\">Global<\/td>\n<td width=\"40%\">An array of average recognized\u00a0tone emotions and scores for the entire\u00a0dialog task session.<\/td>\n<td width=\"40%\">\n<ul>\n<li><code>tone_name<\/code> &#8211; The name of the tone detected. One of:\n<ul>\n<li><code>angry<\/code><\/li>\n<li><code>disgust<\/code><\/li>\n<li><code>fear<\/code><\/li>\n<li><code>sad<\/code><\/li>\n<li><code>joy<\/code><\/li>\n<li><code>positive<\/code>\u00a0\u2013 A special tone used to\u00a0evaluate the general positivity of an utterance.<\/li>\n<\/ul>\n<\/li>\n<li><code>count<\/code><\/li>\n<li><code>level<\/code> &#8211; The level of the tone emotion ranging from -3 to +3. One of:\n<ul>\n<li><strong>+3<\/strong> \u2013 The user definitely expressed the tone emotion.<\/li>\n<li><strong>+2<\/strong> \u2013 The user expressed the tone emotion.<\/li>\n<li><strong>+1<\/strong> \u2013 The user likely expressed the tone emotion.<\/li>\n<li><strong>0<\/strong> \u2013\u00a0The user tone emotion is neutral.<\/li>\n<li><strong>-1<\/strong> \u2013 The user likely suppressed the tone emotion.<\/li>\n<li><strong>-2<\/strong> \u2013 The user suppressed the tone emotion.<\/li>\n<li><strong>-3<\/strong> \u2013 \u00a0The user definitely suppressed the tone emotion.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">&lt;&lt; nodename &gt;&gt;.response.body<\/td>\n<td width=\"10%\">Dialog<\/td>\n<td width=\"40%\">The HTTP JSON response from the Service node.<\/td>\n<td width=\"40%\"><b>Syntax:<\/b> <code>context.&lt;&lt; node name &gt;&gt;.response.body<\/code><br \/>\nIn the following code example, the response from a Service node is displayed to the end-user in a Message node.<br \/>\n<code><br \/>\nprint(JSON.stringify(context.fetchopportunitiesnode.response.body));<br \/>\n<\/code><\/td>\n<\/tr>\n<tr>\n<td width=\"10%\">Developer Defined Key<\/td>\n<td width=\"10%\">Dialog<\/td>\n<td width=\"40%\">A key\/value pair defined by the developer.<\/td>\n<td width=\"40%\"><b>Syntax:<\/b> <code>context.&lt;&lt; varName &gt;&gt;<\/code><br \/>\nFor example, <code>context.customerId<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div><\/div><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><p><strong>Sample Context Object<\/strong><\/p>\n<p>The following is a payload response that contains a context object:<\/p>\n<pre class=\"lang:default decode:true \">\"context\":{\r\n   \"bot\":\"Kore Banking Documentation\",\r\n   \"botid\":\"st-b4a22e86-XXXX-575c-b888-e106d083a251\",\r\n   \"taskid\":\"dg-df510618-XXXX-5a0b-8370-ee042b3e5b47\",\r\n   \"intent\":\"Agent\",\r\n   \"intentType\":\"dialog\",\r\n   \"entities\":{\r\n      \"Name\":12345,\r\n      \"number\":1234\r\n   },\r\n   \"userInputs\":{\r\n      \"originalInput\":{\r\n         \"sentence\":\" agent\",\r\n         \"timestamp\":1501244143000\r\n      }\r\n   },\r\n   \"history\":[\r\n      {\r\n         \"originalSentence\":\"agent\",\r\n         \"timestamp\":1501244143000\r\n      },\r\n      {\r\n         \"dialogState\":\"started\",\r\n         \"timestamp\":1501244143000\r\n      },\r\n      {\r\n         \"nodeId\":\"intent0\",\r\n         \"state\":\"processed\",\r\n         \"type\":\"intent\",\r\n         \"componentName\":\"Agent\",\r\n         \"timestamp\":1501244143000\r\n      },\r\n      {\r\n         \"nodeId\":\"entity1\",\r\n         \"state\":\"processing\",\r\n         \"type\":\"entity\",\r\n         \"componentName\":\"Name\",\r\n         \"timestamp\":1501244143000\r\n      },\r\n      {\r\n         \"nodeId\":\"entity1\",\r\n         \"state\":\"waitingForUserInput\",\r\n         \"type\":\"entity\",\r\n         \"componentName\":\"Name\",\r\n         \"timestamp\":1501244143000\r\n      },\r\n      {\r\n         \"nodeId\":\"entity1\",\r\n         \"state\":\"processed\",\r\n         \"type\":\"entity\",\r\n         \"componentName\":\"Name\",\r\n         \"timestamp\":1501244149000\r\n      },\r\n      {\r\n         \"nodeId\":\"entity4\",\r\n         \"state\":\"processing\",\r\n         \"type\":\"entity\",\r\n         \"componentName\":\"number\",\r\n         \"timestamp\":1501244149000\r\n      },\r\n      {\r\n         \"nodeId\":\"entity4\",\r\n         \"state\":\"waitingForUserInput\",\r\n         \"type\":\"entity\",\r\n         \"componentName\":\"number\",\r\n         \"timestamp\":1501244149000\r\n      },\r\n      {\r\n         \"nodeId\":\"entity4\",\r\n         \"state\":\"processed\",\r\n         \"type\":\"entity\",\r\n         \"componentName\":\"number\",\r\n         \"timestamp\":1501244156000\r\n      },\r\n      {\r\n         \"nodeId\":\"agentTransfer3\",\r\n         \"state\":\"processing\",\r\n         \"type\":\"agentTransfer\",\r\n         \"componentName\":\"agenttransfer\",\r\n         \"timestamp\":1501244156000\r\n      },\r\n      {\r\n         \"dialogState\":\"transferredToAgent\",\r\n         \"timestamp\":1501244156000\r\n      }\r\n   ],\r\n   \"dialog_tone\":[\r\n      {\r\n         \"tone_name\":\"positive\",\r\n         \"level\":1\r\n      }\r\n   ],\r\n   \"message_tone\":[\r\n      {\r\n         \"tone_name\":\"positive\",\r\n         \"level\":1\r\n      }\r\n   ],\r\n  \"currentTags\": {\r\n    \"tags\": [\r\n      \"name\"\r\n    ]\r\n  },\r\n  \"historicTags\": [\r\n    {\r\n      \"tags\": [\r\n        \"name\"\r\n      ]\r\n    }\r\n  ],\r\n   \"session\":{\r\n      \"EnterpriseContext\":{\r\n         \"5\":\"500\",\r\n         \"TestData-Ent\":\"1000234\",\r\n         \"ec1\":\"Enterprise Context session variable from processor\",\r\n         \"Enterprise_G_Smith_Email\":\"george.smith@kore.com\",\r\n         \"enterprisesessiondialog\":\"enterprisesessiondialogvalue\",\r\n         \"enterprisecustomprocessor\":\"enterprisecustomprocessorvalue\",\r\n         \"enterprisepreprocessor\":\"enterprisepreprocessorvalue\",\r\n         \"EnterpriseContext\":\"EnterpriseContextvalueresponse\",\r\n         \"Entersession123\":\"Entersession123value\",\r\n         \"EnterpriseContext Summary\":\"TestingSpread\",\r\n         \"enterprisecontext\":\"enterprisecontextvalue\",\r\n         \"ec2\":\"Enterprise Context session variable from channel response\",\r\n         \"EC\":\"ec session variable from intializer\",\r\n         \"enterprisepreprocessorkey\":\"enterprisepreprocessorvalue\"\r\n      },\r\n      \"BotContext\":{\r\n      },\r\n      \"UserContext\":{\r\n         \"profColour\":\"#3651fc\",\r\n         \"workinghours\":{\r\n            \"workdays\":\"Mon, Tue, Wed, Thu, Fri, Sat, Sun\",\r\n            \"workstart\":\"12:00 AM\",\r\n            \"workend\":\"12:00 PM\"\r\n         },\r\n         \"dept\":\"Product Development\",\r\n         \"jTitle\":\"Documentation Manager\",\r\n         \"profImage\":\"profile.png\",\r\n         \"activationStatus\":\"active\",\r\n         \"emailId\":\"help.docs@kore.com\",\r\n         \"firstName\":\"Help\",\r\n         \"lastName\":\"Docs\",\r\n         \"orgId\":\"o-b30656ae-XXXX-XXXX-9181-065f7de34be9\",\r\n         \"_id\":\"u-4b9f02a3-XXXX-XXXX-b5cc-6df81c0af603\",\r\n         \"customData\":null,\r\n         \"identities\":[\r\n            {\r\n               \"val\":\"help.docs@kore.com\",\r\n               \"type\":\"email\"\r\n            },\r\n            {\r\n               \"val\":\"kore\/u-4b9f02a3-XXXX-XXXX-b5cc-6df81c0af603\",\r\n               \"type\":\"mapped\"\r\n            }\r\n         ]\r\n      },\r\n      \"UserSession\":{\r\n      },\r\n      \"BotUserSession\":{\r\n         \"isReturningUser\": true,\r\n         \"lastMessage\":{\r\n            \"channel\":\"rtm\",\r\n            \"messagePayload\":{\r\n               \"clientMessageId\":1501244152843,\r\n               \"message\":{\r\n                  \"body\":\"1234\"\r\n               },\r\n               \"resourceid\":\"\/bot.message\",\r\n               \"botInfo\":{\r\n                  \"chatBot\":\"Kore Banking Documentation\",\r\n                  \"taskBotId\":\"st-b4a22e86-XXXX-XXXX-b888-e106d083a251\"\r\n               },\r\n               \"client\":\"botbuilder\",\r\n               \"meta\":{\r\n                  \"timezone\":\"America\/New_York\",\r\n                  \"locale\":\"en-US\"\r\n               },\r\n               \"id\":1501244152843\r\n            }\r\n         },\r\n     \"lastUserMessageTime\": \"2021-07-12T07:07:17.278Z\"\r\n      },\r\n      \"opts\":{\r\n         \"userId\":\"u-4b9f02a3-XXXX-XXXX-b5cc-6df81c0af603\",\r\n         \"streamId\":\"st-b4a22e86-XXXX-XXXX-b888-e106d083a251\"\r\n      }\r\n   }\r\n},\r\n\"channel\":{\r\n   \"_id\":\"dc-5b4a742a-XXXX-XXXX-938f-520912935456\",\r\n   \"channelInfos\":{\r\n      \"requestId\":\"ms-26aae382-XXXX-XXXX-8bf1-a9e076770956\",\r\n      \"message\":\"The bot is not accessible via Web \/ Mobile Client.\",\r\n      \"body\":\"1234\",\r\n      \"client\":\"botbuilder\",\r\n      \"handle\":{\r\n         \"spanId\":\"8cab2ce2f6aabc47\",\r\n         \"traceId\":\"8cab2ce2f6aabc47\",\r\n         \"taskBotId\":\"st-b4a22e86-XXXX-XXXX-b888-e106d083a251\",\r\n         \"clientId\":\"5a37bf24-XXXX-XXXX-a816-f9602db08149\",\r\n         \"userId\":\"u-4b9f02a3-XXXX-XXXX-b5cc-6df81c0af603\",\r\n         \"handleId\":\"54e95c2b-XXXX-XXXX-ba6b-384d4166f1b2\"\r\n      },\r\n      \"botInfo\":{\r\n         \"taskBotId\":\"st-b4a22e86-XXXX-XXXX-b888-e106d083a251\",\r\n         \"chatBot\":\"Kore Banking Documentation\"\r\n      },\r\n      \"from\":\"u-4b9f02a3-3f6f-XXXX-XXXX-6df81c0af603\",\r\n      \"type\":\"rtm\"\r\n   },\r\n   \"__v\":0\r\n},\r\n\"baseUrl\":\"https:\/\/bots.kore.ai\/api\/botsdk\/stream\/st-b4a22e86-XXXX-XXXX-b888-e106d083a251\",\r\n\"sendUserMessageUrl\":\"https:\/\/bots.kore.ai\/api\/botsdk\/stream\/st-b4a22e86-e95b-XXXX-XXXX-e106d083a251\/sendUserMessage\/1501244156289\",\r\n\"sendBotMessageUrl\":\"https:\/\/bots.kore.ai\/api\/botsdk\/stream\/st-b4a22e86-e95b-XXXX-XXXX-e106d083a251\/sendBotMessage\/1501244156289\"\r\n}<\/pre>\n<p>&#8220;lastUserMessageTime&#8221;: &#8220;2021-07-12T07:07:17.278Z&#8221;<\/p>\n<\/div><\/div><div class=\"w-separator size_small with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"The Context object is the container object that persists data for dialog execution and across all intents i.e. dialog tasks, action, alert &amp; info tasks, and FAQs. Kore.ai&#8217;s natural language processing (NLP) engine populates the intent identified, entities extracted, and history into this object. Keys from the Context object are used in the dialog task...","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/multisite.korebots.com\/v9-0\/wp-json\/wp\/v2\/posts\/21411"}],"collection":[{"href":"https:\/\/multisite.korebots.com\/v9-0\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multisite.korebots.com\/v9-0\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multisite.korebots.com\/v9-0\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multisite.korebots.com\/v9-0\/wp-json\/wp\/v2\/comments?post=21411"}],"version-history":[{"count":22,"href":"https:\/\/multisite.korebots.com\/v9-0\/wp-json\/wp\/v2\/posts\/21411\/revisions"}],"predecessor-version":[{"id":29057,"href":"https:\/\/multisite.korebots.com\/v9-0\/wp-json\/wp\/v2\/posts\/21411\/revisions\/29057"}],"wp:attachment":[{"href":"https:\/\/multisite.korebots.com\/v9-0\/wp-json\/wp\/v2\/media?parent=21411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multisite.korebots.com\/v9-0\/wp-json\/wp\/v2\/categories?post=21411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multisite.korebots.com\/v9-0\/wp-json\/wp\/v2\/tags?post=21411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}