Log Google Form intake requests in NocoDB and alert Slack

Every form submission becomes a time-stamped row in your NocoDB intake table and a Slack alert routed to the right team channel.

Deterministic Code
Google FormsNocoDBSlack BotOperationsData SyncNotifications & Alerts
PromptCreate

Watch my Google Form for new submissions and, for each new response, write it straight into my NocoDB intake table and notify the team in Slack. Use a poll trigger on Google Forms for new responses so this fires as soon as someone submits, and use the Google Forms List Responses or Get Response operation to pull the full answer set for the submission that triggered the run.

Map the form answers onto my intake table columns using a fixed field mapping, then use the NocoDB Create Table Records operation to add exactly one row per submission. Set the submission time column from the response's submitted timestamp, and set the status column to "New" on every row. Each answer belongs in one specific named column, so treat the mapping as configuration I can edit at the top of the workflow rather than something to infer at run time.

Once the row exists, use the Slack Bot Send a Message operation to post the key fields into our intake channel: who submitted it, the request type, a short description, and the time it came in. Route the message to a different channel depending on the request type answer, driven by a request type to channel lookup I can edit. If a submission carries a request type that is not in the lookup, post it to a default fallback channel so nothing is silently dropped.

Build this as a deterministic code workflow. Every step is a fixed field mapping or a direct lookup with no judgement calls, so no model is needed in the loop. Write the NocoDB row before sending the Slack message so a messaging failure never costs us the record. Process each response exactly once, and do not backfill historical submissions that predate turning the workflow on.

What does this prompt do?

  • Watches your Google Form and picks up each new submission as it arrives, with no manual exporting or copy and paste.
  • Adds one row to your NocoDB intake table, copying each answer into the column you mapped it to, stamping the time it came in, and setting the status to New.
  • Posts the key details to Slack so the team can act on a request without opening the table.
  • Sends each request to a different Slack channel based on the request type answer, so the right group picks it up.

What do I need to use this?

  • A Google account with the intake form you want to watch.
  • A NocoDB workspace, either the hosted version or your own server, with an intake table ready to receive rows.
  • A Slack workspace where the assistant can post into your intake channels.
  • A status column on your intake table, plus a column to hold the time each request arrived.

How can I customize it?

  • Change which form answers land in which table columns, or add columns your team already tracks.
  • Change the channel routing: give every request type its own channel, or send everything to a single channel.
  • Change the starting status from New to whatever your team uses, such as Triage or Unassigned.

FAQs

Does this work with self-hosted NocoDB?
Yes. It works with both the hosted version and a NocoDB you run on your own server. You just point it at your own address when you connect the account.
What happens if someone picks a request type I have not set up a channel for?
The request still gets written to your intake table, and the alert goes to a default fallback channel. Nothing is dropped quietly just because the routing list is missing an entry.
Will it add duplicate rows for the same submission?
No. Each submission creates exactly one row. It only handles responses that arrive after you turn it on, so your existing responses are left alone.
Do I need to rebuild my existing form?
No. Keep the form you already use. You only need to tell the workflow which answer belongs in which column of your intake table.
Can it post to a private Slack channel?
Yes, as long as the assistant has been added to that channel. Public channels work out of the box.

Related templates

Build a credential rotation checklist when someone leaves

When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.

1Password
Rippling
Slack Bot
+1
Agentic Task
Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task
Replay failed SQS messages when a bug fix is merged

When you merge a fix in GitHub, this agent checks the matching dead-letter queue, replays the failed messages, and reports back on the pull request and in Slack.

Amazon SQS
GitHub
Slack Bot
Agentic Task

Stop retyping form submissions into your intake table.

Set this up once and every request lands in NocoDB and in front of the right team, within moments of someone hitting submit.