Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Google No Code

ASecurity

Design Google Forms and wire Apps Script triggers (onFormSubmit) for email alerts, spreadsheet logging, and dynamic questions — no code editor required.

6 stars
0 votes
0 copies
0 views
Added 9/22/2026
ai-agentsjavascriptgojavagitapisecurity

Works with

api

Security Analysis

A100/100

Scanned 9/22/2026

$npx -y skills add ranbot-ai/awesome-skills --skill google-no-code --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Google No Code?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Google No Code
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ranbot-ai-google-no-code/badge)](https://www.skillsdirectory.com/skills/ranbot-ai-google-no-code)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: google-no-code
description: Design Google Forms and wire Apps Script triggers (onFormSubmit) for email alerts, spreadsheet logging, and dynamic questions — no code editor required. 
category: Document Processing
source: antigravity
tags: [javascript, api, claude, ai, automation, design, spreadsheet, security, rag]
url: https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/google-no-code
---


# Google No-Code Forms Automation

## Overview

Guides the user through building a Google Form in the Forms UI and connecting it to Google Apps Script triggers, without writing a custom integration or leaving the browser. Covers form design, the Apps Script editor, the `onFormSubmit` trigger, and small response-handling scripts that run automatically when a form is submitted.

## When to Use This Skill

- Use when the user wants to build a Google Form and automate what happens after submissions.
- Use when the user asks for email alerts, spreadsheet logging, or conditional handling of form responses.
- Use when the user wants Apps Script snippets to paste into a form bound script project.
- Skip this skill if the user needs custom UI, paid APIs, or a full standalone Apps Script application.

## How It Works

### Step 1: Define the form in the Forms UI

Create the form in Google Forms with clear questions, answer types (short answer, multiple choice, checkbox), and required fields. Match question IDs to what the script will need later. Add a description to the form so respondents know what to expect.

### Step 2: Open the bound Apps Script editor

In the form, go to `Extensions > Apps Script`. This opens a project bound to the form. The script can read each submission through the `e.response` event object.

### Step 3: Write the response handler

Add a function that accepts the `onFormSubmit` event, reads `e.response` with `getItemResponses()`, and then performs the desired action: send an email, write to a spreadsheet, or branch on answers.

### Step 4: Install the trigger

In Apps Script, go to the clock/triggers menu, select the `onFormSubmit` function, choose the event source **From form** and event type **On form submit**, then save and authorize. The function runs automatically on each new submission.

### Step 5: Test with a real submission

Submit a test response from a private/incognito window and verify the email, sheet row, or log arrives once. Check the Apps Script executions page (`Executions` in the editor) for errors and read the stack trace if something fails.

## Examples

### Example 1: Email notification on every response

```javascript
function onFormSubmit(e) {
  const response = e.response;
  const email = getEmail(response);
  MailApp.sendEmail({
    to: email,
    subject: "Form submission received",
    body: "Thank you. We have recorded your response."
  });
}

function getEmail(response) {
  const items = response.getItemResponses();
  for (const item of items) {
    if (item.getItem().getTitle().toLowerCase().includes("email")) {
      return item.getResponse();
    }
  }
  return Session.getActiveUser().getEmail();
}
```

### Example 2: Log each response to a Google Sheet

```javascript
function onFormSubmit(e) {
  const sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName("Responses");
  const itemResponses = e.response.getItemResponses();
  const row = [new Date()].concat(itemResponses.map(r => r.getResponse()));
  sheet.appendRow(row);
}
```

### Example 3: Branch on a multiple-choice answer

```javascript
function onFormSubmit(e) {
  const items = e.response.getItemResponses();
  for (const item of items) {
    if (item.getItem().getTitle().toLowerCase() === "priority") {
      const priority = item.getResponse();
      const subject = priority === "High" ? "[URGENT] " : "";
      MailApp.sendEmail({ to: MANAGER_EMAIL, subject: subject + "New submission", body: itemResponsesText(e) });
    }
  }
}
```

## Best Practices

- ✅ Test every trigger with a real submission before telling the user it works.
- ✅ Use clear, stable question titles so the script can match items by title instead of fragile indexes.
- ✅ Keep secrets and API keys in script properties, never hard-coded in the file.
- ✅ Add try/catch around handler logic and log errors with `Logger.log` so failures surface in the Executions page.
- ❌ Do not grant broad scopes; run with the minimum permission the form action needs.
- ❌ Do not send email to addresses that the form did not legitimately collect.

## Limitations

- Apps Script quotas apply (email rate limits, daily triggers, execution time); heavy volume needs review.
- Only form submissions trigger the event; edits to responses by users do not fire `onFormSubmit` by default.
- The skill produces scripts the user must paste, authorize, and deploy; it cannot create a Google Forms project by itself.
- Sheets integration requires the sheet's ID and permission, which must be confirmed with the user.

## Security & Safety Notes

- The script runs inside the user's Google account with the scopes it declares. Review the authorization prompt and grant only the minimum requested scope.
- Do not log, print, or embed passwords, OAuth tokens, or API keys in form scripts or shared files.
- Form responses can arrive from anyone the form is shared with; validate inputs before acting on them.
- Test in a controlled environment first; sending email or appending rows happens o

Attribution

ranbot-airanbot-ai
View sourceSee grades on GitHubMore from ranbot-ai →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →