Online ordering on the cheap.

Tally.so

The summary at the end of the form.

Google Sheets

Partial list of integrations.

Paying (Stripe)

  • Created a Stripe Account
  • Coupled it to the little widget
  • Started testing it

Paying (Mollie)

Webhooks (Tally)

Setting up a webhook on Tally.so
POST
{
"eventId":"c041c4b4-ecdf-4a6a-9ea7-7564c9698b52",
"createdAt":"2021-12-24T08:38:29.699Z",
"data":{
"responseId":"4cdf0680-4db7-8ee9-001a5fcddd1c",
"submissionId":"wgaBMfffffm",
"respondentId":"wzOEdddd1n",
"formId":"nananan",
"formName":"blablabla",
"createdAt":"2021-11-03T07:08:26.404Z",
"fields":[
{
"key":"question_3qayg7_85a8144f-975d-4e71-b793-8461f356c712",
"label":"PrijsVolwassen",
"type":"CALCULATED_FIELDS",
"value":16104
},
{
"key":"question_mBKv6N_3bab1b60-0679-4092-bb67-5de75ab4accf",
"label":"PrijsKinderen",
"type":"CALCULATED_FIELDS",
"value":6647
},
{
"key":"question_mKeXO7_e7cc0d4c-ec9a-4c28-bca2-7fc7f93e5648",
"label":"Totaal",
"type":"CALCULATED_FIELDS",
"value":24315
},
{
"key":"question_nPDoO0",
"label":"Aantal volwassenen (€ 17,00 / persoon)",
"type":"INPUT_NUMBER",
"value":4
},
{
"key":"question_3jbKQ9",
"label":"Aantal kinderen (€ 10,00 / persoon)",
"type":"INPUT_NUMBER",
"value":2
},
{
"key":"question_nWr4zQ",
"label":"Wanneer leveren?",
"type":"DROPDOWN",
"value":"ce26c9a0-6cec-41f8-bbc3-eace33d924db",
"options":[
{
"id":"ce26c9a0-6cec-41f8-bbc3-eace33d924db",
"text":"8540 - Deerlijk ( 25/12/2021 - voormiddag)"
},
{
"id":"de40da9d-8fba-4155-9124-2d6039bdf8c9",
"text":"8531 - Bavikhove (25/12/2021 - voormiddag)"
},
{
"id":"827b86fb-125a-472c-814a-03b87fb87d78",
"text":"8530 - Harelbeke (25/12/2021 - voormiddag)"
},
{
"id":"19e243ae-99d2-4256-a2cd-99f4445c82b3",
"text":"8500 - Kortrijk (26/12/2021 - namiddag)"
},
{
"id":"f06d8445-6202-4e55-bc3c-e1a466dadfaf",
"text":""
}
]
},
{
"key":"question_w4BDZA",
"label":"Details",
"type":"INPUT_TEXT",
"value":"Pataca"
},
{
"key":"question_3jbqKJ",
"label":"Naam",
"type":"INPUT_TEXT",
"value":"Row"
},
{
"key":"question_w2Bg2D",
"label":"Email",
"type":"INPUT_EMAIL",
"value":"some@email.com"
},
{
"key":"question_n9XeQ4",
"label":"GSM nummer",
"type":"INPUT_PHONE_NUMBER",
"value":"1-774-541-3913 x438"
},
{
"key":"question_3xjLGv",
"label":"Adres",
"type":"INPUT_TEXT",
"value":"RSS"
}
]
}
}

Serverless (Lambda AWS)

Very basic api on Serverless

Lambda Code

  • Parse the webhook event from Tally (get Amount, name, submissionId)
  • Create a payment-link in Mollie
  • Send an e-mail using sendgrid (or any other provider)
org: some-org
app: some-app
service: some-service
frameworkVersion: '2'provider:
name: aws
runtime: nodejs12.x
lambdaHashingVersion: '20201221'
functions:
hello:
handler: handler.hello
events:
- httpApi:
path: /
method: get
webhook:
handler: handler.webhook
events:
- httpApi:
path: /webhook
method: post
burgerlijk-box-send-mollie sls deployServerless: Using provider credentials, configured via dashboard: https://app.serverless.com/....Serverless: Packaging service...Serverless: Excluding development dependencies...Serverless: Ensuring that deployment bucket existsServerless: Uploading CloudFormation file to S3...Serverless: Uploading artifacts...Serverless: Uploading service mollie.zip file to S3 (385.8 kB)...Serverless: Validating template...Serverless: Updating Stack...Serverless: Checking Stack update progress........................Serverless: Stack update finished...Service Informationservice: some-servicestage: devregion: us-east-1stack: some-service-devresources: 29api keys:Noneendpoints:GET - https://xxxxxxx.amazonaws.com/POST - https://xxxxxxxx.amazonaws.com/webhookfunctions:hello: test-hellowebhook: test-webhooklayers:NoneServerless: Removing old service artifacts from S3...Serverless: Publishing service to the Serverless Dashboard...Serverless: Successfully published your service to the Serverless Dashboard: https://app.serverless.com/...
Example of an email sent from the Lambda using Sendgrid.

Google sheets (part 2)

example of an entry with payment status.

Take aways

  • Tally.so is a great tool!
  • Mollie is very easy to use api.
  • Google sheets remains very flexible (I’m a huge fan, see other posts as well!)
  • Lambda is very inexpensive solution to glue everything together!
  • The whole PoC is running for free, except for mollie transaction costs.

Want more?

--

--

--

Coffee Geek. Tech Freak. Entrepreneur | B-NYS.com

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Go Functions (Part 1) — The anatomy of a regular function

data management basics

Difference Between Scripting Language and Programming Languages — Honest Pros and Cons

How to Setup a Python Environment for Machine Learning on Linux or Ubuntu Machine

How to Go a Little Crazy with Graphics Titles

Active-Active data Strategy 3K Miles Away

What could not kill you would make you stronger. I survived the week…

Be part of the future of Java!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Matthias Nys

Matthias Nys

Coffee Geek. Tech Freak. Entrepreneur | B-NYS.com

More from Medium

Startup’s — What we should not be doing? — Cloud Technologies

How I Made My First App With Glide

Mobile LMS: Key Benefits for Organizations and Advantages over Web LMS

Maximize Profits by Split Testing Your Amazon Listing Optimizations