# Amazon Honeycode

### Objective <a href="#toc65174285" id="toc65174285"></a>

This document will demonstrate how easy it is to integrate Amazon Honeycode with ixHello and create methods to pull data.

### Pre-requisites <a href="#toc65174286" id="toc65174286"></a>

* **An active AWS Account**

You should have an active AWS Account. If you do not have it, you can create an AWS account at <https://portal.aws.amazon.com/billing/signup#/start>

* **An active Honeycode Account**

You should have an active Amazon Honeycode account. If you do not have an account, please follow the steps below:

1. Goto [https://www.honeycode.aws](https://www.honeycode.aws/) and click on “**TRY FOR FREE**” button.

![](/files/OBfkmXrcE8qSQsKwoQuU)

1. It should take you to the screen below. Fill out the relevant details and complete the registration process. You will receive an email asking to confirm the email address. Click on the link provided and you are

![](/files/9QPLrSSbPwgcMzeg18QY)

![](/files/ZZ7ESRA1IgMERgr0NMqK)

1. Once the registration is complete, login to your honeycode account and you should land to the screen below:

![](/files/Y8B1w1R6Owke0K7NzkaI)

1. Now you need to connect this honeycode account with AWS. To do this, click on Connect to AWS Account button as shown above. You’ll be required to provide your AWS account ID. ![](/files/v3BLapiZawFr5NM3m0Ul)
2. To get AWS Account ID, login to AWS console. On the top menu bar, click on your account name. You will find your Account ID under “**My Account**” submenu. Copy it.

![](/files/0M6Ky7UxdYqkAKnhMXy5)

1. Now go back to your honeycode “**Connect AWS Account**” screen and paste it.

![](/files/Lui3IjJTXjQjuuFCaiOB)

1. Now you need to approve it on AWS Console.

![](/files/K75v712Y9RXlba42mpMU)

1. Go to AWS Console, search for “**HoneyCode**” and you will land to HoneyCode teams page where you can see the pending request. Select the teams account, click on “**Actions**” and click on “**Approve connection**”. Follow the instructions to approve the connection.

![](/files/NPgivEFeh5Znk5IClNFA)

1. Once you are connected, you will see AWS Account connected section on Teams page as shown below:

![](/files/4sfS8Ip1POiKW9mjpMMw)

1. To integrate with Voiceworx, you need to create one workbook on honeycode. Go to My Apps in the left navigation and Click on Create Workbook.

![](/files/QR9TLamlOhsjjv3ZNW0p)

1. Click on “**Create workbook**” button on the landing page and a popup will appear. Click “**Start from Scratch**”. You will be asked to put a name for workbook. Type “**Contact Database**” and click on “**Create**” button.

![](/files/Loql36KlFkikACOIRYiz)

1. You will be prompted to create a table. On the topbar, rename “**Table1**” as “**Contacts**”. Rename/Create column names as below:
   * Fullname
   * Phone
   * Address

![](/files/grIXLJ4BWOcnaDvLqNsK)

1. You can also enter a sample data in the workbook as this.

![](/files/ssj8dagGfWhp5SPM8G0x)

1. Now you need to create an App for the workbook you created. For that click “**Builder**” menu on the left and click on “**+**” sign to create a new App.

![](/files/f4UH50281jLKd90W8s7Q)

1. Click **Build from scratch**

![](/files/nOvrlS6sYCzvEAphMwVO)

1. You will see an app interface as below:

![](/files/kCnGJkUx9g72IXNDmiyZ)

1. Now you will need two things to be able to connect your voiceworx with honeycode.
   1. WorkbookId
   2. AWS Credentials (App Key, App Secret and region)
2. To obtain WorkbookId, goto app screen you just created. Right click on the screen and click on “**Get ARN and IDs**”.

![](/files/ML6fXLnpkw24DRS8Wao2)

Copy the Workbook ID from popup and note it down as shown below:

![](/files/skp7A3KgRqeqTQmFlKQB)

1. To obtain AWS credentials for Honeycode, goto AWS console, search for “IAM” and click on IAM service.

![](/files/bJPCYzIsDaDpFSihCgwh)

You will land to IAM Dashboard. Click on “**Users**” link. You will be redirected to users list page.

![](/files/piGtacTaY9HdrSlmlU9y)

On users list page click on “**Add User**” button as provide the details below.

User Name: “**honeycodeuser**”

Access Type: Tick “**Programmatic access**”.

Click: “**Next: Permissions**”

Click “**Attach existing policies directly**”

Search for “**honeycode**”

Tick “**AmazonHoneycodeFullAccess**”

Click “**Next: Tags**”

Click “**Next: Review**”

Click “**Create User**”

Now you will be able to access “**Access Key ID”** and “**Secret access key”**. Click “Download .csv” and store it safely.

Congratulations! You are now have everything to be able to connect to Honeycode with Voiceworx. Follow the steps below:

### Steps <a href="#toc65174287" id="toc65174287"></a>

To proceed with these steps, you should have all the pre-requisites satisfied. If you are missing something, please go back and make sure you satisfy all of them.

Once done, you are ready to get started using VoiceWorx platform with Honeycode.

The following shows the general steps/activities that will be carried out in setting up this integration. **Note:** It is advisable to use same email for signup across the 3 channels below. Step 1 -3 below are compulsory.

1. [Sign up for Alexa account](http://alexa.amazon.com/)
2. [Sign up for Alexa developer account](https://signin.aws.amazon.com/signin?redirect_uri=https%3A%2F%2Fus-east-2.console.aws.amazon.com%2Fconsole%2Fhome%3Fregion%3Dus-east-2%26state%3DhashArgs%2523%26isauthcode%3Dtrue\&client_id=arn%3Aaws%3Aiam%3A%3A015428540659%3Auser%2Fhomepage\&forceMobileApp=0\&code_challenge=9nNXzyrNIGZEa88E12gdwP_z_GcXjUlexn0VjUc6Z_s\&code_challenge_method=SHA-256).
3. [Sign up for VoiceWorx platform](https://portal.voiceworx.ai/Account/Login?ReturnUrl=%2F)
4. Ensure you Login With Amazon (LWA) <https://developer.amazon.com/alexa/console/ask> account is setup by your admin. If you are the account admin, you can follow this instruction to set it up.
5. Set up connection to Salesforce
6. Create a custom skill in Voiceworx.
7. Publish the skill
8. Test the Alexa skill.

### Setup connection to Honeycode <a href="#toc65174288" id="toc65174288"></a>

Login to the VoiceWorx portal at [https://portal.voiceworx.ai](https://portal.voiceworx.ai/)

To Configure Honeycode, browse to: Integration > Connect System. Click on Add New Connection.

On the resulting pop up.On “**Select Integration Category**” dropdown, choose “**Custom**” and on “**Select System Type**” dropdown, choose “**Amazon Honeycode**” and click on “**CONNECT SYSTEM**” button as shown below:

Once you click on “**Connect System**” button, you will be redirected to the “**Amazon Honeycode Instance Configuration**” page and fill in the details as shown below.

| Service Instance Name: “**Amazon Honeycode**”                                  |
| ------------------------------------------------------------------------------ |
| Consumer Key: Use “**Access Key ID**” from the csv file you downloaded.        |
| Consumer Secret: Use “**Secret Access Key**” from the csv file you downloaded. |
| Region: “**us-west-2**”                                                        |
| Click: “**VALIDATE AND SAVE SETTINGS**”                                        |

You will be notified whether your connection is successful or not. If successful, you should see “**Amazon Honeycode**” integration in the list as shown below.

### Create a custom App in Voiceworx <a href="#toc65174289" id="toc65174289"></a>

To create an app, browse to Custom Apps > Manage Apps and click on “**Create New Custom App**“ button, you should see a small popup screen as shown below.

Add Custom Skill by doing the following:

| **Name:** Honeycode           |
| ----------------------------- |
| **Custom Skill Type**: Search |
| **Category**: Default         |

**Click**: Save.

You should see a screen as shown below:

### Create a Data Source <a href="#toc46273070" id="toc46273070"></a>

A Data Source connects the Skill with the integration. Once you have a skill created, you can go to Data Sources either by clicking on “**Setup Data Source**” or by clicking on “**Data Sources**” tab.

To create a data source, click on “**Create New Data Source**” button and you should see a popup screen as shown below

Add DataSoure by doing the following:

| **Name:** Honeycode DS                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------- |
| **Integration Configuration:** Amazon Honeycode : Amazon Honeycode (make sure to select the previous integration created) |
| **Click**: Save.                                                                                                          |

### Create Methods to interact with Honeycode <a href="#toc65174291" id="toc65174291"></a>

Methods allows you to fetch data from Honeycode tables and insert data.

As of the publication date of this document, the VoiceWorx platform supports following Honeycode methods,

1. Search Table Data
2. Query Table Data
3. Batch Create Table Rows
4. List Tables
5. List Tables data

Depending on your requirement, you will have to use an appropriate method. This document will explain one methods with an example and rest of methods will be on the appendix section.

Let’s start with a use case.

### **Scenario/ Use Case (Contact Finder):** <a href="#toc65174292" id="toc65174292"></a>

You are using Honeycode to store all the contact details of your friends and family members or contacts of your organization.

You want to find phone number of your friend Sam. Just create one record in Honeycode table you create using the name Sam. For this, you can use *Query Table Data* method as explained below.

### &#x20;<a href="#toc46273075" id="toc46273075"></a>

### Method: QueryTableData <a href="#toc65174293" id="toc65174293"></a>

This method requires just one parameter as explained below.

Parameters:

| Parameter     | Sample Value                                             | Info                                                                                                                                                         |
| ------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|               |                                                          |                                                                                                                                                              |
| FilterFormula | =Filter(Contacts,"Contacts\[FullName]=""{{FullName}}""") | This is a standard Honeycode filter formula query which you can use in different ways. Make sure that you include the ‘=’ sign as well for the sample value. |

Other than these two parameters, you need to provide following standard inputs

| Parameter             | Info                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                       |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Method Name           | You can give any name. This name will be displayed in the methods list.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Request Type          | <p><strong>QueryTableData</strong></p><p>This is the method that you are using</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Parameters            | As explained in the previous table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Result Type           | <p>ListOfRecords (Auto Selected)</p><p>It indicates that the method can return one or more records</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Record Limit          | <p>Numeric value (e.g. 10)</p><p>If Method is returning larger number of records, then you can limit this result by providing this value.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Record JsonPath       | <p>Each method returns data in json format and to pick any specific information from the json, we need to specify the <em>Record JsonPath</em> so Voice Worx platform will pick that data in consideration while displaying results.</p><p>Example: $.\[\*]</p><p>This selects all the records that is returned.</p>                                                                                                                                                                                                                                                                                                                                           |
| Empty Result Template | <p>When the method does not return any data, this response will be generated. So we can specify something like:</p><p>“Sorry, I could not find the contact details”</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Record Template       | <p>Let’s assume that the following json represents one record.</p><p>\[</p><p>{</p><p>"FullName": "Sandeep",</p><p>"Phone": "9851032937",</p><p>"Address": "Kathmandu, Nepal"</p><p>}</p><p>]</p><p>In this example, Phone is at root level and can be accessed by {{Phone}}</p><p>So record template can be written as</p><p><em>Phone number of {{FullName}} is {{Phone}}</em></p><p>So, when a method is executed, this will be displayed as,</p><p><em>Phone number of Sandeep is</em> 9851032937</p><p>Note:</p><p>Anything written in between {{ }} is represented as a json field and it’s case-sensitive.</p><p>{{Phone}} is not same as {{phone}}</p> |
| Result Template       | <p>This indicates how method results should be represented.</p><p>Here you go, {{Records}}</p><p>Here, {{Records}} represents one or more records separated by a separator.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |

#### Sample Response: <a href="#toc65174295" id="toc65174295"></a>

\[

{

"FullName": "Sandeep",

"Phone": "9851032937",

"Address": "Kathmandu, Nepal"

}

]

L,90k

After you’ve successfully completed the method, you can test to check the method functionality. Click on Save and Test, provide the parameters and click on Test. You shall see results as shown below:

### Create Intents <a href="#toc65174296" id="toc65174296"></a>

In the top menu tabs, select “**Intents**” and “**Create New Intent**”. Then select or enter the following:

**Name:** FindDataIntent

**Intent Type:** Search

**Intent Action:** Execute Method

**DataSource:** Honeycode DS

**DataSource Method:** FindData

**Click:** Save

### Create Slots <a href="#toc65174297" id="toc65174297"></a>

In the top menu tabs, select “**Slots**” and select “**Create New Slot**”. Note the Reprompt message is what Alexa will ask if it can’t fill/resolve the person slot. Then select or enter the following:

**Name:** FullName

**Slot Order:** 1

**Reprompt Message:** what’s the contact name

**Type:** Full name

**Custom Skill:** Honeycode

**Intent:** SearchContactIntent

**Click:** Save

### Create Utterance <a href="#toc65174298" id="toc65174298"></a>

In the top menu tabs, select “**Utterance**” and select “**Create New Utterance**”. Utterance are words spoken to launch specific intents. Now input or select the following:

**Value:** find phone number of {FullName}

**Custom Skill:** Amazon HoneyCode

**Intent:** SearchContactIntent

**Click:** Save

### Create Input <a href="#toc65174299" id="toc65174299"></a>

In the top menu tabs, select “**Input**” and select “**Create New Input**”.Then input or select the following:

**Name:** FindDataInput

**Custom Skill:** Amazon Honeycode

**Custom Intent:** FindDataIntent

**Data Source:** Honeycode DS

**Data Source Method:** FindDataMethod

### &#x20;<a href="#toc65174300" id="toc65174300"></a>

After the input has been created, we have to create Input Parameters against every slot in the method.

Add new Input Parameter and add the following details.

### **Publish to Alexa**

To publish to Alexa,select “**Publish**” in the top menu tabs then click “**Add App Publishing**”. Then input or select the following:

| **External Skill Name**: Contact Finder Honeycode Skill. (This will be the name of the skill in Alexa. Therefore, make it unique and different from the names of your other skills in Alexa.)                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Skill Type**: Search                                                                                                                                                                                                                               |
| **Channel**: Alexa                                                                                                                                                                                                                                   |
| **Skill Invocation Name**: contact finder demo. (This will be what users say to launch your skill in Alexa. It must be in lower case alphabets cannot contain **START, BEGIN, STOP, EXIT, LAUNCH** and cannot contain number or special characters.) |
| **Uncheck the following**: Require account linking, Auto Publish                                                                                                                                                                                     |
| **Optional**: Replace all placeholder values in all “Message”. Uncheck all the settings shown in the second image below.                                                                                                                             |
| **Click**: Save                                                                                                                                                                                                                                      |

.

In the top menu tabs select “**Publish**” then click “**Publish to Alexa**”.

Once in Publish Skill to Amazon Alexa select and do the following:

**Selected Skill**: Contact Finder Honeycode skill

**Select Amazon Account:** LWA Config

Select the LWA account setup by your admin or the one you set up in step 4 above.

**Click**: Publish To Alexa

On the resulting screen, ensure that a success message shows for the publishing steps before clicking the “**Go To Alexa Skill**”. If success message not shown, click “**Go To Skill Publishing**” to fix any issue shown in publishing result.

On the Alexa skill page, ensure “**Full Build Successful**” message is shown in bottom right corner before starting to test skill.

Go to “**test**” tab in the top menu, then below “**test**” tab change the skill test status from “**Off**” to “**Development**”.

Invoke skill by typing “**open**” followed by invocation name “**contact finder demo**” inserted in the publishing step in Voiceworx. If the invocation is successful, your configured welcome message will be displayed in the developer console.

Try with an utterance that you created. “**find a contact**”. You should see a response like one below, if your honeycode table has some data.

Congratulations!

You have successfully completed building a Custom Skill and publishing to Alexa.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ixhello.com/ixhc/connections/amazon/amazon-honeycode.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
