Help

Save the date! Join us on October 16 for our Product Ops launch event. Register here.

Re: Dialogflow / API.AI integration with Airtable

2952 1
cancel
Showing results for 
Search instead for 
Did you mean: 
Tomas_Millar
5 - Automation Enthusiast
5 - Automation Enthusiast

I am trying to use Airtable to fulfill Dialogflow requests. I have limited coding knowledge. Wondering if there is anyone who has got this to work? This thread seems to imply it is possible - Create Slackbot for Airtable Lookup.

11 Replies 11
Andrew_Johnson1
8 - Airtable Astronomer
8 - Airtable Astronomer

I assume you are wanting to have the data stored on your base on Airtable, accessed via Dialogflow?

You would probably want to use some third party service like Zapier to have both Airtable and Dialogflow interact with each other.

If in case such a third party does not exist which supports both Airtable and Dialogflow, your only other option is to write up some code and build this integration yourself.

The API docs provided by Airtable are pretty helpful and you might want to have a look at that.

Tomas_Millar
5 - Automation Enthusiast
5 - Automation Enthusiast

Thanks for the advice. I eventually found a web app called Integromat which did the linking.

Tomas

lucianogenova
4 - Data Explorer
4 - Data Explorer

Hi @Tomas_Millar, would you share the settings of your scenario and how you manage the request from Diagloflow?

  1. In Integromat you create a webhook and follow the instructions to link this to your Dialogflow chatbot.

  2. You need to enable Webhook under the fulfillment tab in dialogflow and paste the URL supplied by integromat when you were setting up the webhook.

  3. You also need to “enable webhook call for this intent” in the individual Dialogflow intents.

  4. You then need to send some sample data to Integromat to interpret the data structure. You trigger this process from Integromat.

  5. Link Airtable to Integromat using the built in integration.

  6. setup whatever processing you need.

7 communicate back to Integromat using a “webhook response” node. You need to fill in the custom headers as shown in the attached image. You also need to make sure you format the JSON file back to Dialogflow according to the Dialogflow Fulfillment formatting and fields - https://dialogflow.com/docs/fulfillment

I hope that is enough to get you started. I might try and do a video tutorial at some point.

TomasCapture.JPG

Thank you VERY MUCH!

This is really cool. I was wondering if you ever decided to make a video tutorial?

Tomas_Millar
5 - Automation Enthusiast
5 - Automation Enthusiast

Unfortunately not yet…

Giancarlo_Mirmi
4 - Data Explorer
4 - Data Explorer

Hi Tomas, very interesting!
I’m stuck in how can I make the webhook response available as dialogflow response in the conversation.
Thanks in advance for your help

Giancarlo

So you do need a tad bit of coding knowledge for the response, just search for Webhook Response in the dialogflow help documents. For some reason it won’t let me post a link.
If gives you a pretty good idea of what DialogFlow is looking for in their response.

{
  "fulfillmentText": "This is a text response",
  "fulfillmentMessages": [
    {
      "card": {
        "title": "card title",
        "subtitle": "card text",
        "imageUri": "https://example.com/images/example.png",
        "buttons": [
          {
            "text": "button text",
            "postback": "https://example.com/path/for/end-user/to/follow"
          }
        ]
      }
    }
  ],
  "source": "example.com",
  "payload": {
    "google": {
      "expectUserResponse": true,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "this is a simple response"
            }
          }
        ]
      }
    },
    "facebook": {
      "text": "Hello, Facebook!"
    },
    "slack": {
      "text": "This is a text response for Slack."
    }
  },
  "outputContexts": [
    {
      "name": "projects/project-id/agent/sessions/session-id/contexts/context-name",
      "lifespanCount": 5,
      "parameters": {
        "param-name": "param-value"
      }
    }
  ],
  "followupEventInput": {
    "name": "event name",
    "languageCode": "en-US",
    "parameters": {
      "param-name": "param-value"
    }
  }
}