# 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.

- Workflow type: code
- Services: Google Forms, NocoDB, Slack Bot
- Categories: Operations
- Published: 2026-08-07

## What it does

- 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 you'll need

- 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.

## Prompt

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.

## How to customize

- 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.

## FAQ

### 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.

Use this prompt in General Input: https://www.generalinput.com/prompts/log-google-form-intake-requests-in-nocodb-and-alert-slack