All workflows
Typeform logoGoogle Sheets logoSlack logo

Log every form submission to a sheet and post it to Slack

Checks your form for new submissions, posts each one to Slack and appends it to a spreadsheet - never the same one twice.

Every hour3 apps6 steps

Apps it connects

Authenticate each one once and the workflow is ready to run.

What it does

Each integration step this workflow runs, in order, what it is for, and the conditions and loops that decide when it runs.

  1. 1TypeformList form fieldsReads your form's questions so each answer is labelled with the question wording rather than a field ID.
  2. 2Google SheetsRead rowsReads the log tab to collect the response IDs already handled, and checks the 'Response ID' heading is there.
  3. If loggedHeaders is empty

    1. 3Google SheetsAppend rowWrites the three headings on an empty tab, then appends one row per submission with its time, response ID and answers.
  4. 4TypeformList responsesFetches the latest submissions to your form so any not yet in the log can be handled this run.
  5. For each response

    1. 5SlackSend messagePosts each new submission to your channel with its time and ID above the submitter's escaped answers.
    2. 6Google SheetsAppend row

How it works

What happens on each run, in plain English.

Every hour, the workflow reads your Typeform for submissions it has not handled yet, posts each one into a Slack channel so somebody sees it the same hour, and appends it to a spreadsheet as a permanent record. A backlog is worked through in batches over later runs.

Each Slack post shows when the submission arrived and its ID, then a line marking where the submitter's words begin, followed by their answers as one 'Question: answer' line per question in your form's wording. Anything a submitter typed is escaped so it cannot act as Slack formatting. The 'Response ID' column is how it knows what has been handled, so nothing is posted twice, and the message goes out before the row is written, so a run that fails halfway repeats one notification rather than losing a submission.

Point it at an empty tab and it writes the 'Submitted at', 'Response ID' and 'Answers' headings itself; a tab with headings but no 'Response ID' column makes it stop rather than repost everything.

typeformformsgoogle sheetsslackintakenotificationshourly

Start from a workflow that already works.

Add "Log every form submission to a sheet and post it to Slack" to your workspace, connect its apps, and make it yours.

Free plan, no credit card