{"id":23658,"date":"2020-07-03T15:26:54","date_gmt":"2020-07-03T14:26:54","guid":{"rendered":"https:\/\/developer.kore.ai\/v8-1\/?p=23658"},"modified":"2022-01-31T11:09:29","modified_gmt":"2022-01-31T11:09:29","slug":"data-as-a-service","status":"publish","type":"post","link":"https:\/\/developer.kore.ai\/v8-1\/docs\/bots\/advanced-topics\/data-as-a-service\/","title":{"rendered":"Data Table"},"content":{"rendered":"<section class=\"l-section wpb_row height_auto\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p class=\"note\">This feature was released with v7.3 of the platform and is in <img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/18\/beta.png\" alt=\"\" width=\"18\" height=\"18\" \/> (beta) state.<\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p>Kore.ai takes care of your data needs, without having to depend on external services for it. Data offering lets you define Data Tables, Table Views, and manipulate them from your Virtual Assistant.<\/p>\n<p><strong>Data Tables<\/strong> allow you to persist custom data and retrieve it whenever needed. These can be used as data points collection for \u2018feedback\u2019 or \u2018survey\u2019 tasks, collecting user inputs that can be retrieved at a later point, etc.<\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h1><span class=\"ez-toc-section\" id=\"Highlights\">Highlights<\/span><\/h1>\n<ul>\n<li>Create <strong>custom Data Tables<\/strong> for any business needs<\/li>\n<li>Joining two or more tables to create <strong>custom Data Views<\/strong>.<\/li>\n<li>Support for <strong>secure fields<\/strong>, <strong>indexing<\/strong>, and <strong>references<\/strong>.<\/li>\n<li>Built-in integration with bot builder&#8217;s <strong>Service Node<\/strong> of Dialog Tasks for all read, write, update requirements.<\/li>\n<li><strong>APIs<\/strong> to read, write, update, and delete data.<\/li>\n<li>Ability to <strong>scope<\/strong> tables and views to specific bots and apps.<\/li>\n<\/ul>\n<p>In this document, we discuss the features and implementation of Data Tables in the Kore.ai Bots platform. To jump to a use case example for a step-by-step implementation of Data Tables <a href=\"\/v8-1\/docs\/bots\/how-tos\/how-to-add-data-tables\/\" target=\"_blank\" rel=\"noopener noreferrer\">click here<\/a>.<\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h1><span class=\"ez-toc-section\" id=\"Overview\">Overview<\/span><\/h1>\n<p>Data Table offering on Kore.ai Bots platform is split into two parts:<\/p>\n<ul>\n<li><strong>Data Definition<\/strong> which includes:\n<ul>\n<li>Defining <strong>Data Tables<\/strong> and <strong>Views<\/strong>.<\/li>\n<li><strong>Granting access<\/strong> to the bots for manipulating data from these Tables and Views.<\/li>\n<li><strong>Defining Apps<\/strong> for securely exporting and importing definitions and for querying the data from views or data tables.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-dd.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23531\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-dd.png\" alt=\"\" width=\"1426\" height=\"526\" \/><\/a><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<ul>\n<li><strong>Data Manipulation<\/strong> which allows performing CRUD operations on data from any of the data tables either:\n<ul>\n<li>from Bot using <strong>service node<\/strong> within a dialog task, or<\/li>\n<li>by making <strong>API calls<\/strong>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-dm.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23533\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-dm.png\" alt=\"\" width=\"1378\" height=\"577\" \/><\/a><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p>In the document, we will be elaborating on each of these aspects. A brief knowledge of RDBMS is essential for working with this feature. You can refer to the glossary, <a href=\"#Glossary\">listed below<\/a>, to refresh your concepts.<\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div><div class=\"g-cols wpb_row  type_default valign_top vc_inner \"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h1><span class=\"ez-toc-section\" id=\"Data_Definition\">Data Definition<\/span><\/h1>\n<p>For Data Definition, you need to access the <strong>Data tab<\/strong> of the Bot Builder Landing Page.<\/p>\n<p>From here you can:<\/p>\n<ul>\n<li>Create Data Tables;<\/li>\n<li>Define Table Views; and<\/li>\n<li>Create Apps for access.<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-blank.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23443\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-blank.png\" alt=\"\" width=\"1365\" height=\"571\" \/><\/a><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div><\/div><\/div><\/div><div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div><div class=\"g-cols wpb_row  type_default valign_top vc_inner \"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h2><span class=\"ez-toc-section\" id=\"Data_table_creation\">Data table creation<\/span><\/h2>\n<p>Create Data Table would open\u00a0<strong>New Table<\/strong> page where you have to enter the following details:<\/p>\n<ul>\n<li><strong>Name<\/strong> of the Data Table;<\/li>\n<li><strong>Description<\/strong> of the Data Table;<\/li>\n<li><strong>Columns<\/strong> to be included in the Table;<\/li>\n<li><strong>Indexes<\/strong> for the Table;<\/li>\n<li><strong>Bot Assignment<\/strong> for accessing the data in this table;<\/li>\n<li><strong>App Assignment<\/strong> for accessing\u00a0the data in this table.<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-newTable.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23444\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-newTable.png\" alt=\"\" width=\"1092\" height=\"716\" \/><\/a><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div><\/div><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h3><span class=\"ez-toc-section\" id=\"Column_Addition\">Column Addition<\/span><\/h3>\n<p>The second step in defining a Data Table would be to add columns that make up the table. Column definition includes:<\/p>\n<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-cols-ref.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23445\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-cols-ref.png\" alt=\"\" width=\"1080\" height=\"301\" \/><\/a><\/p>\n<ul>\n<li><strong>Name<\/strong> of the column (<a href=\"#reserve-words\">see here<\/a> for reserve words which cannot be used as the name of a column);<\/li>\n<li><strong>Type<\/strong> of the data that can be stored in this column. It can be:\n<ul>\n<li>string;<\/li>\n<li>date; or<\/li>\n<li>number.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Required<\/strong> flag to mark the column as mandatory.<\/li>\n<li><strong>Encrypted<\/strong> flag to secure the data in this column.<\/li>\n<li><strong>Reference Column<\/strong> to create a dependency with a column from another table ie to add a foreign key constraint. This would ensure that the value entered for this column exists in the referenced table column.<\/li>\n<li><strong>Max Length<\/strong> to limit the maximum length for the column values.<\/li>\n<li><strong>Default Values<\/strong> to be taken in case the value is missing while adding a row.<\/li>\n<\/ul>\n<p>By default the following columns would be defined by the platform:<\/p>\n<ul>\n<li><strong>sys_Id<\/strong>: A platform generated unique identifier for each row in the table.<\/li>\n<li><strong>Created_On<\/strong>: Timestamp when this table was created;<\/li>\n<li><strong>Updated_On<\/strong>: Timestamp when this table was updated;<\/li>\n<li><strong>Created_By<\/strong>: User id of the developer who created this table;<\/li>\n<li><strong>Updated_By<\/strong>: User id of the developer who last updated this table.<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h3><span class=\"ez-toc-section\" id=\"Index_Definition\">Index Definition<\/span><\/h3>\n<p>For an improved performance during Data search and retrieval, you can define Indices for your Data Table.<\/p>\n<p>This includes:<\/p>\n<ul>\n<li><strong>Index Name<\/strong> for reference;<\/li>\n<li><strong>Is Unique<\/strong> flag to define if the index is expected to contain unique values;<\/li>\n<li><strong>Column &amp; Sort Order<\/strong> &#8211; List of columns to be included in the index; you can select multiple columns and specify the sort order (ascending or descending) for each of the selected columns.<\/li>\n<\/ul>\n<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-index.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23446\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-index.png\" alt=\"\" width=\"1083\" height=\"315\" \/><\/a><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h3><span class=\"ez-toc-section\" id=\"Assignments\">Assignments<\/span><\/h3>\n<p>You can define the assignments for each of the data tables as follows:<\/p>\n<ul>\n<li><strong>Assign bots:<\/strong>\n<ul>\n<li>Assign bots with Read, Write, and Delete permissions. You can select the bots from the list presented, these will be the list of bots owned by you and shared with you.<\/li>\n<li>Only the assigned bots will be allowed to access the data from the data table using the Service Nodes in the Dialog Tasks of that bot.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Assign apps:<\/strong>\n<ul>\n<li>Assign apps with Read, Write, and Delete permissions.<\/li>\n<li>You can select from the list or create a new app.<\/li>\n<li>The data table CRUD APIs will be restricted to access only the tables that are assigned to the app.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-assignments.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23447\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-assignments.png\" alt=\"\" width=\"1106\" height=\"470\" \/><\/a><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h3><span class=\"ez-toc-section\" id=\"Import_Export\">Import &amp; Export<\/span><\/h3>\n<p>Data Table definition can be exported and imported as JSON format files.<\/p>\n<p><strong>To Export<\/strong>:<\/p>\n<ol>\n<li>Hover over the table definition that you want to Export<\/li>\n<li>Click the more (ellipses) icon and select\u00a0<strong>Export Definition<\/strong><\/li>\n<li>JSON file would be generated and downloaded.<a ref=\"magnificPopup\" href=\"https:\/\/s3-us-east-2.amazonaws.com\/kore-wordpress\/developer.kore.ai\/v8-1\/wp-content\/uploads\/sites\/18\/20201124101615\/DaaS-dd-export.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/s3-us-east-2.amazonaws.com\/kore-wordpress\/developer.kore.ai\/v8-1\/wp-content\/uploads\/sites\/18\/20201124101615\/DaaS-dd-export.png\" alt=\"\" width=\"1105\" height=\"213\" \/><\/a><\/li>\n<\/ol>\n<p><strong>To Import<\/strong>:<\/p>\n<ol>\n<li>Click the\u00a0<strong>down arrow<\/strong> next to the New Table button.<\/li>\n<li>Select the\u00a0<strong>Import Table Definition<\/strong> option.<\/li>\n<li>Enter a\u00a0<strong>Table Name<\/strong> and select the JSON file containing the table definition.<\/li>\n<li>Click\u00a0<strong>Import.<\/strong><a ref=\"magnificPopup\" href=\"https:\/\/s3-us-east-2.amazonaws.com\/kore-wordpress\/developer.kore.ai\/v8-1\/wp-content\/uploads\/sites\/18\/20201124101615\/DaaS-dd-import.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/s3-us-east-2.amazonaws.com\/kore-wordpress\/developer.kore.ai\/v8-1\/wp-content\/uploads\/sites\/18\/20201124101615\/DaaS-dd-import.png\" alt=\"\" width=\"1101\" height=\"277\" \/><\/a><\/li>\n<\/ol>\n<p><strong>Sample Data Definition JSON file<\/strong><\/p>\n<pre>{\"name\":\"customertable\",\r\n \"description\":\"Table containing customer details\",\r\n \"indexes\":[],\r\n \"schemaDef\":[{\"name\":\"CustEmail\",\r\n               \"type\":\"string\",\r\n               \"isRequired\":false,\r\n               \"isEncrypted\":false,\r\n               \"reference\":{},\r\n               \"maxLength\":\"\",\r\n               \"default\":\"\"},\r\n\t      {\"name\":\"CustType\",\r\n               \"type\":\"string\",\r\n               \"isRequired\":false,\r\n               \"isEncrypted\":false,\r\n               \"reference\":{},\r\n               \"maxLength\":\"\",\r\n               \"default\":\"Preferred\"},\r\n\t      {\"name\":\"Address\",\r\n               \"type\":\"string\",\r\n               \"isRequired\":false,\r\n               \"isEncrypted\":false,\r\n               \"reference\":{},\r\n               \"maxLength\":\"\",\r\n               \"default\":\"\"},\r\n\t      {\"name\":\"CustName\",\r\n               \"type\":\"string\",\r\n               \"isRequired\":true,\r\n               \"isEncrypted\":false,\r\n               \"reference\":{},\r\n               \"maxLength\":\"\",\r\n               \"default\":\"\"},\r\n\t      {\"name\":\"CustId\",\r\n               \"type\":\"number\",\r\n               \"isRequired\":true,\r\n               \"isEncrypted\":true,\r\n               \"reference\":{},\r\n               \"maxLength\":\"5\",\r\n               \"default\":\"\"},\r\n\t      {\"name\":\"sys_Id\",\"type\":\"string\",\"isRequired\":true,\"readOnly\":true},\r\n\t      {\"name\":\"Created_On\",\"type\":\"date\",\"isRequired\":true,\"readOnly\":true},\r\n\t      {\"name\":\"Updated_On\",\"type\":\"date\",\"isRequired\":true,\"readOnly\":true},\r\n\t      {\"name\":\"Created_By\",\"type\":\"string\",\"isRequired\":true,\"readOnly\":true},\r\n\t      {\"name\":\"Updated_By\",\"type\":\"string\",\"isRequired\":true,\"readOnly\":true}]}<\/pre>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h2><span class=\"ez-toc-section\" id=\"Table_View_Definitions\">Table View Definitions<\/span><\/h2>\n<p>Table Views let you create custom datasets by joining one or more Data Tables. These definitions get converted to queries to extract data from one or more data tables by using the required joins.<\/p>\n<p>View definition includes:<\/p>\n<ul>\n<li><strong>Name<\/strong> for the view.<\/li>\n<li><strong>Description<\/strong> of the view<\/li>\n<li><strong>Assignment<\/strong> of Bot and Apps to access the View<br \/>\n<a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-view-creation.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23593\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-view-creation.png\" alt=\"\" width=\"663\" height=\"543\" \/><\/a><\/li>\n<li>A View can be built from a <strong>Single Table<\/strong> or <strong>Multiple Tables<\/strong>.\n<ul>\n<li>For both types,\u00a0you need to\n<ul>\n<li>select the <strong>table;<\/strong><\/li>\n<li>select the <strong>columns<\/strong> to be included in the view, you can use aggregation functions like <code>sum, avg, min, max and count<\/code>. Usage example: <code>count(&lt;table_name&gt;.&lt;column_name&gt;)<\/code><\/li>\n<li>the <strong>criteria for filtering<\/strong> the results using\n<ul>\n<li>column name &#8211; select from the drop-down list;<\/li>\n<li>comparison operator &#8211; select from =, !=, &lt; or &gt;<\/li>\n<li>comparison value<\/li>\n<li>you can have multiple filter criteria connected by AND\/OR operators<\/li>\n<\/ul>\n<\/li>\n<li>the <strong>Group By<\/strong> columns for arranging the identical data into groups as <code>&lt;table_name&gt;.&lt;column_name&gt;<\/code>, and<\/li>\n<li>the <strong>Sort By<\/strong> columns to order the results as <code>&lt;table_name&gt;.&lt;column_name&gt; asc\/desc<\/code><\/li>\n<\/ul>\n<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-view-singletable.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23594\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-view-singletable.png\" alt=\"\" width=\"665\" height=\"701\" \/><\/a><\/li>\n<li>In addition, for multiple tables view, you need to specify the <strong>Join<\/strong> criteria by configuring\n<ul>\n<li><strong>Table<\/strong> to be joined;<\/li>\n<li>the\u00a0<strong>type of join<\/strong>&#8211; inner, right outer or left outer;<\/li>\n<li>the <strong>join columns<\/strong> &#8211; pick from the drop-down list and<\/li>\n<li>specify the <strong>join criteria<\/strong> using the operation =, !=, &gt; or &lt; operators.<\/li>\n<li>You can have multiple Join Rules. You can have up to 4 join rules.<\/li>\n<\/ul>\n<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-view-multitable.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23595\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-view-multitable.png\" alt=\"\" width=\"691\" height=\"881\" \/><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h2><span class=\"ez-toc-section\" id=\"App_Definition\">App Definition<\/span><\/h2>\n<p>You can define apps to securely access the data from data tables and data views. These apps can be used for:<\/p>\n<ul>\n<li>Accessing the data tables and views over public APIs;<\/li>\n<li>Accessing the export and import API for the definition of data table and views.<\/li>\n<\/ul>\n<p>App definition includes<\/p>\n<ol>\n<li>entering the\u00a0<strong>App Name<\/strong><\/li>\n<li>enforcing JTI\/JWE as per your requirements. (<a href=\"\/v8-1\/docs\/bots\/api-guide\/apis\/\" target=\"_blank\" rel=\"noopener noreferrer\">refer here for details<\/a>)<\/li>\n<\/ol>\n<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-apps.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23448\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-apps.png\" alt=\"\" width=\"1363\" height=\"513\" \/><\/a><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h1><span class=\"ez-toc-section\" id=\"Data_Manipulation\">Data Manipulation<\/span><\/h1>\n<p>You can add, update, and delete the data present in the data tables in the following ways:<\/p>\n<ul>\n<li>Bot Definition &#8211; Service call;<\/li>\n<li>Public API Access.<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h2><span class=\"ez-toc-section\" id=\"Service_Call_Table\">Service Call &#8211; Table<\/span><\/h2>\n<p>From the assigned bots for any given data table\/table view, you can query and manipulate the data using the Service Node in the Dialog Tasks.<\/p>\n<p><strong>Steps to configure the Service node:<\/strong><\/p>\n<ol>\n<li>Open the Bot and the Dialog Task where you want to access the data.<\/li>\n<li>Add a Service Node at the appropriate location in the process flow.<\/li>\n<li><a href=\"\/v8-1\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-service-node\/\" target=\"_blank\" rel=\"noopener noreferrer\">Click here<\/a> for details on Service Node. Here we will be listing the configurations for Data Table integration.<\/li>\n<li>Component Properties configuration\n<ul>\n<li><strong>General Settings<\/strong> section\n<ul>\n<li><strong>Name<\/strong> &#8211; enter a name for the node;<\/li>\n<li><strong>Display Name<\/strong> &#8211; enter a display name for the node;<\/li>\n<li><strong>Service Type<\/strong> &#8211; choose <em>Data Service<\/em>;<\/li>\n<li><strong>Type<\/strong> &#8211; select <em>Table<\/em>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceNode.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23450\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceNode.png\" alt=\"\" width=\"813\" height=\"646\" \/><\/a><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p><strong>Request Definition<\/strong> &#8211; define the service request by clicking the <em>Define Request<\/em> link. In the slide-out page configure the following:<\/p>\n<ul>\n<li><strong>Choose a Data Table<\/strong> &#8211; You can choose from the list, these are the data tables assigned to this bot.<\/li>\n<li><strong>Actions<\/strong> &#8211; Select the action you would like to perform:\n<ul>\n<li><em>Add Data<\/em> &#8211; to add data (<a href=\"#Add_Data\">see below for details<\/a>);<\/li>\n<li><em>Get Data<\/em> &#8211; to fetch data from the table (<a href=\"#Get_Data\">see below for details<\/a>;<\/li>\n<li><em>Update Data<\/em> &#8211; to modify existing data (<a href=\"#Update_Data\">see below for details<\/a>);<\/li>\n<li><em>Delete data<\/em> &#8211; to delete rows from the data table (<a href=\"#Delete_data\">see below for details<\/a>).<\/li>\n<\/ul>\n<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceRequestCRUD.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23598\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceRequestCRUD.png\" alt=\"\" width=\"691\" height=\"509\" \/><\/a><\/li>\n<li>You can <strong>Test<\/strong> the service request. Remember testing with context reference will fail as they will be evaluated at run time and the data will not be available till then.<\/li>\n<li><strong>Save<\/strong> the service request definition<\/li>\n<li>You can set the Instance and Connections properties as per your bot requirements.<\/li>\n<li>The data returned from the data table can be accessed from the context object and used in your task as per your need.<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h3><span class=\"ez-toc-section\" id=\"Add_Data\">Add Data<\/span><\/h3>\n<p>To add data, you need to:<\/p>\n<ul>\n<li>provide values for each column in the data table;<\/li>\n<li>these values can be static or a reference to a context object\u00a0 for example <code>{{context.entities.&lt;entity-name&gt;}}<\/code><br \/>\n<a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceRequest.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23451\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceRequest.png\" alt=\"\" width=\"701\" height=\"491\" \/><\/a><\/li>\n<li>The response from this call would be:\n<pre>  \"stringTable\": {\r\n    \"response\": {\r\n      \"body\": {\r\n        \"CustId\": 1,\r\n        \"Type\": \"Preferred\",\r\n        \"Address\": \"New York\",\r\n        \"CustomerName\": \"John Smith\",\r\n        \"Updated_On\": 1593687904111,\r\n        \"Created_On\": 1593687904111,\r\n        \"Updated_By\": \"st-b1376ff2-1111-1111-aa34-973ef73212f5\",\r\n        \"Created_By\": \"st-b1376ff2-1111-1111-aa34-973ef73212f5\",\r\n        \"sys_Id\": \"sys-5c46e351-ee51-5c27-80cf-c6c1e8f8f066\",\r\n        \"_id\": \"5efdbf602de5bb5f3f54f728\"\r\n      }\r\n    }\r\n  }<\/pre>\n<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h3><span class=\"ez-toc-section\" id=\"Get_Data\">Get Data<\/span><\/h3>\n<p>To filter and fetch data from the table, you can:<\/p>\n<ul>\n<li><strong>Choose Filters<\/strong> to define filter criteria using:\n<ul>\n<li>the column names &#8211; pick from the drop-down list;<\/li>\n<li>an operator &#8211; choose from the list;<\/li>\n<li>comparison value &#8211; these values can be static or a reference to a context object\u00a0 for example <code>{{context.entities.&lt;entity-name&gt;}}<\/code>.<\/li>\n<li>Multiple filter criteria can be defined using AND\/OR connectors.<\/li>\n<li>In the absence of filter criteria, all rows are fetched limited by the limit and offset values mentioned below.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Limit<\/strong> property can be used to set a limit on the number of records to be fetched. If not specified then 10 records would be fetched by default;<\/li>\n<li><strong>Offset<\/strong> property can be used to specify the records to be skipped from the result data set.<br \/>\n<a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceRequestGet.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23452\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceRequestGet.png\" alt=\"\" width=\"699\" height=\"767\" \/><\/a><\/li>\n<li>Data values can be accessed using: <code>{{context.&lt;service_node_name&gt;.response.body.queryResult[&lt;index&gt;].&lt;column_name&gt;}}<\/code><\/li>\n<li>The response from this service call would be:\n<pre>\"customerdetails\": {\r\n    \"response\": {\r\n      \"body\": {\r\n\t\"hasMore\": true,\r\n\t\"total\": 4,\r\n\t\"metaInfo\": [\r\n          {\r\n            \"name\": \"City\",\r\n            \"type\": \"string\"\r\n          },\r\n          {\r\n            \"name\": \"Name\",\r\n            \"type\": \"string\"\r\n          },\r\n          {\r\n            \"name\": \"sys_Id\",\r\n            \"type\": \"string\"\r\n          },\r\n          {\r\n            \"name\": \"Created_On\",\r\n            \"type\": \"date\"\r\n          },\r\n          {\r\n            \"name\": \"Updated_On\",\r\n            \"type\": \"date\"\r\n          },\r\n          {\r\n            \"name\": \"Created_By\",\r\n            \"type\": \"string\"\r\n          },\r\n          {\r\n            \"name\": \"Updated_By\",\r\n            \"type\": \"string\"\r\n          }\r\n        ],\r\n        \"queryResult\": [\r\n          {\r\n            \"CustId\": 1,\r\n            \"Type\": \"Preferred\",\r\n            \"Address\": \"New York\",\r\n            \"CustomerName\": \"John Smith\",\r\n            \"sys_Id\": \"sys-b088ab59-7640-5a8f-8999-61a265dd2bee\",\r\n            \"Created_On\": 1593152119161,\r\n            \"Updated_On\": 1593152119161,\r\n            \"Created_By\": \"st-b1376ff2-2384-5541-aa34-973ef73212f5\",\r\n            \"Updated_By\": \"st-b1376ff2-2384-5541-aa34-973ef73212f5\"\r\n          },\r\n          {\r\n            \"CustId\": 2,\r\n            \"Type\": \"Privileged\",\r\n            \"Address\": \"Chicago\",\r\n            \"CustomerName\": \"Jane Doe\",\r\n            \"sys_Id\": \"sys-632c69ef-f6dd-5d83-ab32-f7837c8b63f9\",\r\n            \"Created_On\": 1593152443035,\r\n            \"Updated_On\": 1593152443035,\r\n            \"Created_By\": \"st-b1376ff2-2384-5541-aa34-973ef73212f5\",\r\n            \"Updated_By\": \"st-b1376ff2-2384-5541-aa34-973ef73212f5\"\r\n          }\r\n\t ]\r\n      }\r\n    }\r\n  }<\/pre>\n<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h3><span class=\"ez-toc-section\" id=\"Update_Data\">Update Data<\/span><\/h3>\n<p>To modify existing you can:<\/p>\n<ul>\n<li><strong>Assign Values <\/strong>against each column to be updated.<br \/>\nIf any value is left blank, then the corresponding column original values will NOT be retained but will be set as empty.<\/li>\n<li>These values can be static or a reference to a context object.<\/li>\n<li><strong>Choose Filters <\/strong>to define the <em>filter criteria<\/em> to specify the rows to be updated using\n<ul>\n<li>the column names,<\/li>\n<li>an operator and<\/li>\n<li>filter value &#8211; these values can be static or a reference to a context object\u00a0 for example <code>{{context.entities.&lt;entity-name&gt;}}<\/code>.<\/li>\n<li>Multiple filter criteria can be defined using AND\/OR connectors.<\/li>\n<\/ul>\n<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceRequestUpdate.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23535\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceRequestUpdate.png\" alt=\"\" width=\"693\" height=\"655\" \/><\/a><\/li>\n<li>The response from this service call would be:\n<pre>  \"customerdetails\": {\r\n    \"response\": {\r\n      \"body\": {\r\n        \"records\": []\r\n      }\r\n    }\r\n  }<\/pre>\n<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h3><span class=\"ez-toc-section\" id=\"Delete_data\">Delete data<\/span><\/h3>\n<p>To delete rows from the data table you need<\/p>\n<ul>\n<li>to define filter criteria to specify the rows to be deleted using\n<ul>\n<li>the column names,<\/li>\n<li>an operator and<\/li>\n<li>filter value, these values can be static or a reference to a context object\u00a0 for example <code>{{context.entities.&lt;entity-name&gt;}}<\/code>. Multiple filter criteria can be defined using AND\/OR connectors.<\/li>\n<\/ul>\n<p><a ref=\"magnificPopup\" href=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceRequestDelete.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-23536\" src=\"\/wp-content\/uploads\/sites\/18\/DaaS-serviceRequestDelete.png\" alt=\"\" width=\"701\" height=\"453\" \/><\/a><\/li>\n<li>The response from this service request would be:\n<pre>  \"customerdetails\": {\r\n    \"response\": {\r\n      \"body\": {\r\n        \"nDeleted\": 1\r\n      }\r\n    }\r\n  }<\/pre>\n<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h2><span class=\"ez-toc-section\" id=\"Service_Call_View\">Service Call &#8211; View<\/span><\/h2>\n<p>From the assigned bots for any given data table\/table view, you can query and manipulate the data using the Service Node in the Dialog Tasks.<\/p>\n<p><strong>Steps to configure the Service node:<\/strong><\/p>\n<ol>\n<li>Open the Bot and the Dialog Task where you want to access the data.<\/li>\n<li>Add a Service Node at the appropriate location in the process flow.<\/li>\n<li><a href=\"\/v8-1\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-service-node\/\" target=\"_blank\" rel=\"noopener noreferrer\">Click here<\/a> for details on Service Node. Here we will be listing the configurations for Data Table integration.<\/li>\n<li>Component Properties configuration\n<ul>\n<li><strong>General Settings<\/strong> section\n<ul>\n<li><strong>Name<\/strong> &#8211; enter a name for the node;<\/li>\n<li><strong>Display Name<\/strong> &#8211; enter a display name for the node;<\/li>\n<li><strong>Service Type<\/strong> &#8211; choose <em>Data Service<\/em>;<\/li>\n<li><strong>Type<\/strong> &#8211; select <em>View<\/em>.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Request Definition<\/strong> &#8211; define the service request by clicking the <em>Define Request<\/em> link.<\/li>\n<li>In the slide-out page configure the following:\n<ul>\n<li><strong>Choose a Table View<\/strong> &#8211; You can choose from the list, these are the table views assigned to this bot.<\/li>\n<li>Filter the results &#8211; you can further define <em>filter criteria<\/em> using\n<ul>\n<li>the column names,<\/li>\n<li>an operator and<\/li>\n<li>filter value &#8211; these values can be static or a reference to a context object\u00a0 for example <code>{{context.entities.&lt;entity-name&gt;}}<\/code>.<\/li>\n<\/ul>\n<\/li>\n<li>Multiple filter criteria can be defined using AND\/OR connectors.<\/li>\n<li>In the absence of filter criteria, all rows are fetched limited by the limit and offset values mentioned below.<\/li>\n<\/ul>\n<\/li>\n<li>You can set a limit on the number of records fetched and<\/li>\n<li>You can choose to skip a few records from the result data set by specifying the offset value.<\/li>\n<li>You can <strong>Test<\/strong> the service request. Remember testing with context reference will fail as they will be evaluated at run time and the data will not be available till then.<\/li>\n<li><strong>Save<\/strong> the service request definition<\/li>\n<\/ul>\n<\/li>\n<li>You can set the Instance and Connections properties as per your bot requirements.<\/li>\n<li>The data returned from the data table can be accessed from the context object and used in your task as per your need,\u00a0using: <code>{{context.&lt;service_node_name&gt;.response.body.queryResult[&lt;index&gt;].&lt;column_name&gt;}}<\/code><\/li>\n<li>The response from this service call would be:\n<pre>  \"CustomerView\": {\r\n    \"response\": {\r\n      \"body\": {\r\n        \"hasMore\": true,\r\n        \"total\": 4,\r\n        \"metaInfo\": [\r\n          {\r\n            \"name\": \"type\",\r\n            \"type\": \"string\"\r\n          },\r\n          {\r\n            \"name\": \"address\",\r\n            \"type\": \"string\"\r\n          }\r\n        ],\r\n        \"queryResult\": [\r\n          {\r\n            \"type\": \"Gold\",\r\n            \"address\": \"New York\"\r\n          },\r\n          {\r\n            \"type\": \"Gold\",\r\n            \"address\": \"Chicago\"\r\n          },\r\n          {\r\n            \"type\": \"Gold\",\r\n            \"address\": \"Chicago\"\r\n          }\r\n        ]\r\n      }\r\n    }\r\n  }<\/pre>\n<\/li>\n<\/ol>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h2><span class=\"ez-toc-section\" id=\"API_Access\">API Access<\/span><\/h2>\n<p>APIs to access the data in the data tables and data views are as follows:<\/p>\n<ul>\n<li>Data Insert API &#8211; <a href=\"\/v8-1\/docs\/bots\/api-guide\/data-insert-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">See here for more<\/a><\/li>\n<li>Data Update API &#8211; <a href=\"\/v8-1\/docs\/bots\/api-guide\/data-update-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">See here for more<\/a><\/li>\n<li>Data Delete API &#8211; <a href=\"\/v8-1\/docs\/bots\/api-guide\/data-delete-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">See here for more<\/a><\/li>\n<li>Query Data from Table &#8211; <a href=\"\/v8-1\/docs\/bots\/api-guide\/query-data-table-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">See here for more<\/a><\/li>\n<li>Query Data from View &#8211; <a href=\"\/v8-1\/docs\/bots\/api-guide\/query-data-view-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">See here for more<\/a><\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h4 id=\"reserve-words\">Reserve Words<\/h4>\n<p>Following is the list of words that are reserved and cannot be used as the names for a column:<\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"g-cols wpb_row  type_default valign_top vc_inner \"><div class=\"vc_col-sm-4 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<ul>\n<li>ACCESS<\/li>\n<li>ADD<\/li>\n<li>ALL<\/li>\n<li>ALTER<\/li>\n<li>AND<\/li>\n<li>ANY<\/li>\n<li>AS<\/li>\n<li>ASC<\/li>\n<li>AUDIT<\/li>\n<li>BETWEEN<\/li>\n<li>BY<\/li>\n<li>CHAR\\<\/li>\n<li>CHECK<\/li>\n<li>CLUSTER<\/li>\n<li>COLUMN<\/li>\n<li>COMMENT<\/li>\n<li>COMPRESS<\/li>\n<li>CONNECT<\/li>\n<li>CREATE<\/li>\n<li>CURRENT<\/li>\n<li>DATE<\/li>\n<li>DECIMAL<\/li>\n<li>DEFAULT<\/li>\n<li>DELETE<\/li>\n<li>DESC<\/li>\n<li>DISTINCT<\/li>\n<li>DROP<\/li>\n<li>ELSE<\/li>\n<li>EXCLUSIVE<\/li>\n<li>EXISTS<\/li>\n<li>FILE<\/li>\n<li>FLOAT<\/li>\n<li>FOR<\/li>\n<li>FROM<\/li>\n<li>GRANT<\/li>\n<li>GROUP<\/li>\n<li>HAVING<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div><\/div><\/div><div class=\"vc_col-sm-4 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<ul>\n<li>IDENTIFIED<\/li>\n<li>IMMEDIATE<\/li>\n<li>IN<\/li>\n<li>INCREMENT<\/li>\n<li>INDEX<\/li>\n<li>INITIAL<\/li>\n<li>INSERT<\/li>\n<li>INTEGER<\/li>\n<li>INTERSECT<\/li>\n<li>INTO<\/li>\n<li>IS<\/li>\n<li>LEVEL<\/li>\n<li>LIKE<\/li>\n<li>LOCK<\/li>\n<li>LONG<\/li>\n<li>MAXEXTENTS<\/li>\n<li>MINUS<\/li>\n<li>MLSLABEL<\/li>\n<li>MODE<\/li>\n<li>MODIFY<\/li>\n<li>NOAUDIT<\/li>\n<li>NOCOMPRESS<\/li>\n<li>NOT<\/li>\n<li>NOWAIT<\/li>\n<li>NULL<\/li>\n<li>NUMBER<\/li>\n<li>OF<\/li>\n<li>ONLINE<\/li>\n<li>ON<\/li>\n<li>OFFLINE<\/li>\n<li>OPTION<\/li>\n<li>ON<\/li>\n<li>ORDER<\/li>\n<li>PCTFREE<\/li>\n<li>PRIOR<\/li>\n<li>PRIVILEGES<\/li>\n<li>PUBLIC<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div><\/div><\/div><div class=\"vc_col-sm-4 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<ul>\n<li>RAW<\/li>\n<li>RENAME<\/li>\n<li>RESOURCE<\/li>\n<li>REVOKE<\/li>\n<li>ROW<\/li>\n<li>ROWID<\/li>\n<li>RONUM<\/li>\n<li>ROWS<\/li>\n<li>SELECT<\/li>\n<li>SESSION<\/li>\n<li>SET<\/li>\n<li>SHARE<\/li>\n<li>SIZE<\/li>\n<li>SMALLINT<\/li>\n<li>START<\/li>\n<li>SUCCESSFUL<\/li>\n<li>SYNONYM<\/li>\n<li>SYSDATE<\/li>\n<li>TABLE<\/li>\n<li>THEN<\/li>\n<li>TO<\/li>\n<li>TRIGGER<\/li>\n<li>UID<\/li>\n<li>UNION<\/li>\n<li>UNIQUE<\/li>\n<li>UPDATE<\/li>\n<li>USER<\/li>\n<li>VALIDATE<\/li>\n<li>VALUES<\/li>\n<li>VARCHAR<\/li>\n<li>VARCHAR2<\/li>\n<li>VIEW<\/li>\n<li>WHENEVER<\/li>\n<li>WHERE<\/li>\n<li>WITH<\/li>\n<\/ul>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div><\/div><\/div><\/div><div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h1><span class=\"ez-toc-section\" id=\"Glossary\">Glossary<\/span><\/h1>\n<p>Following are the terms and their definitions as used by the platform<\/p>\n<table>\n<tbody>\n<tr>\n<th>Term<\/th>\n<th>Definition<\/th>\n<\/tr>\n<tr>\n<td>Data Definition<\/td>\n<td>Data Definition deals with defining how the data gets stored in terms of tables, columns, views, etc..<\/td>\n<\/tr>\n<tr>\n<td>Data Manipulation<\/td>\n<td>Data Manipulation refers to the basic CRUD operations that can be performed against the date ie. retrieve, update, and delete the data.<\/td>\n<\/tr>\n<tr>\n<td>Data Table<\/td>\n<td>\u00a0Data storage wherein the data can be accessed in a tabular form, with rows and\/or columns named.<\/td>\n<\/tr>\n<tr>\n<td>Columns<\/td>\n<td>The column name refers to the individual field value that is stored in the table.<\/td>\n<\/tr>\n<tr>\n<td>Reference Table and Column<\/td>\n<td>This represents the domain for the columns that reference it, ie the values of the referenced column should be contained in the reference table column.<\/td>\n<\/tr>\n<tr>\n<td>Index<\/td>\n<td>An index is a pointer to data in a table and is used to speed up data retrieval. Assing a column which you think best identifies a row in the table.<\/td>\n<\/tr>\n<tr>\n<td>Table View<\/td>\n<td>A virtual table which can be used to access a subset of information from a single table or combine data from two or more table, using joins.<\/td>\n<\/tr>\n<tr>\n<td>Filter Criteria<\/td>\n<td>When defining views, this property can be used to define the resultant data set, ie. the rows to be included in the view based on the values in specified columns.<\/td>\n<\/tr>\n<tr>\n<td>Group By<\/td>\n<td>When defining views, this property can be used to arrange identical data into groups from the resultant data set.<\/td>\n<\/tr>\n<tr>\n<td>Sort By<\/td>\n<td>When defining views, this property can be used to arrange the rows in the resultant data set based on the specified columns.<\/td>\n<\/tr>\n<tr>\n<td>Join<\/td>\n<td>When defining views, join can be used to fetch data from two or more tables and joined to appear as single set of data.<\/td>\n<\/tr>\n<tr>\n<td>Inner Join<\/td>\n<td>This is a simple join in which the result is based on matched data from the two tables as per the equality condition .<\/td>\n<\/tr>\n<tr>\n<td>Right Outer Join<\/td>\n<td>The right outer join returns a result set with the matched data from the two tables and then the remaining rows of the right table and null from the corresponding left table&#8217;s columns.<\/td>\n<\/tr>\n<tr>\n<td>Left Outer Join<\/td>\n<td>The left outer join returns a result set with the matched data from the two tables and then the remaining rows of the left table and null from the corresponding right table&#8217;s columns.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div><\/div><\/div><\/div><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"This feature was released with v7.3 of the platform and is in (beta) state. Kore.ai takes care of your data needs, without having to depend on external services for it. Data offering lets you define Data Tables, Table Views, and manipulate them from your Virtual Assistant. Data Tables allow you to persist custom data and...","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[],"class_list":["post-23658","post","type-post","status-publish","format-standard","hentry","category-advanced-topics"],"_links":{"self":[{"href":"https:\/\/developer.kore.ai\/v8-1\/wp-json\/wp\/v2\/posts\/23658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.kore.ai\/v8-1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/developer.kore.ai\/v8-1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/developer.kore.ai\/v8-1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.kore.ai\/v8-1\/wp-json\/wp\/v2\/comments?post=23658"}],"version-history":[{"count":12,"href":"https:\/\/developer.kore.ai\/v8-1\/wp-json\/wp\/v2\/posts\/23658\/revisions"}],"predecessor-version":[{"id":29800,"href":"https:\/\/developer.kore.ai\/v8-1\/wp-json\/wp\/v2\/posts\/23658\/revisions\/29800"}],"wp:attachment":[{"href":"https:\/\/developer.kore.ai\/v8-1\/wp-json\/wp\/v2\/media?parent=23658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/developer.kore.ai\/v8-1\/wp-json\/wp\/v2\/categories?post=23658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/developer.kore.ai\/v8-1\/wp-json\/wp\/v2\/tags?post=23658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}