Watch the video tutorial
import os
from flask import Flask, request
from dotenv import load_dotenv
from pyairtable import Table
import json
load_dotenv()
api_key = os.getenv('AIRTABLE_API_KEY')
base_id = os.getenv('AIRTABLE_BASE_ID')
table_name = os.getenv('AIRTABLE_TABLE_NAME')
app = Flask(__name__)
@app.route('/') # this is the home page route
def hello_world(): # this is the home page function that generates the page code
return "Hello world Airtable!"
def save_to_db(req):
try:
session_info = req.get('sessionInfo')
name = session_info.get('parameters').get('person').get('name')
email = session_info.get('parameters').get('email')
url = session_info.get('parameters').get('url')
table = Table(api_key, base_id, table_name)
result = table.create({'Name': name, 'Email': email, 'Website': url})
return 'Thanks. We will be in touch soon.'
except Exception as e:
error_str = str(e)
return 'Something went wrong. Please try again later'
@app.route('/webhook', methods=['POST'])
def hello_webhook():
req = request.get_json(silent=True, force=True)
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(req, f, ensure_ascii=False, indent=4)
result = save_to_db(req)
jsonResponse = {
"fulfillment_response":
{
"messages": [
{
"text": {
"text": [
result
]
}
}
]
}
}
return jsonResponse
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8081)