← Back to Skills Marketplace
dfaaa

Forms for Google Drive

by dfaaa · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
134
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install google-forms-with-forms-ios-app
Description
Google Forms API integration with managed OAuth. Create forms, add questions, export responses to Excel, and summarize response data. Use this skill when use...
README (SKILL.md)

Forms for Google Drive

Access Google Forms with managed OAuth authentication. Create forms, add questions, retrieve and export responses to Excel — all via natural language.

Quick Start

import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/forms/list')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))

Base URL

https://api.gformsfree.com/skill

Authentication

All requests require the API key in the Authorization header:

Authorization: Bearer $GFORMS_API_KEY

Environment Variable: Set your API key as GFORMS_API_KEY:

export GFORMS_API_KEY="YOUR_API_KEY"

Getting Your API Key

  1. Download the Forms for Google Drive App: https://apps.apple.com/us/app/forms-for-google-drive/id6468928038
  2. Sign in with your Google account
  3. Go to Settings → Connect AI Agent
  4. Copy your API key

API Reference

List Forms

GET /forms/list
import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/forms/list')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))

Response:

{
  "forms": [
    {
      "formId": "1BxiM...",
      "title": "Customer Feedback",
      "responderUri": "https://forms.gle/xxx",
      "editUri": "https://docs.google.com/forms/d/xxx/edit"
    }
  ]
}

Get Form

GET /forms/{formId}
import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/forms/FORM_ID')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))

Create Form

Create a new Google Form with questions in a single request.

POST /forms/create
import urllib.request, os, json
data = json.dumps({
  "title": "Customer Feedback Survey",
  "description": "We'd love to hear from you.",
  "questions": [
    {
      "type": "TEXT",
      "title": "What is your name?",
      "required": True
    },
    {
      "type": "RADIO",
      "title": "How satisfied are you?",
      "required": True,
      "options": ["Very satisfied", "Satisfied", "Neutral", "Dissatisfied"]
    },
    {
      "type": "SCALE",
      "title": "Rate your experience",
      "low": 1,
      "high": 5,
      "lowLabel": "Poor",
      "highLabel": "Excellent"
    },
    {
      "type": "CHECKBOX",
      "title": "Which features do you use?",
      "options": ["Feature A", "Feature B", "Feature C"]
    }
  ]
}).encode()
req = urllib.request.Request(
  'https://api.gformsfree.com/skill/forms/create',
  data=data, method='POST'
)
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))

Response:

{
  "formId": "1BxiM...",
  "responderUri": "https://forms.gle/xxx",
  "editUri": "https://docs.google.com/forms/d/xxx/edit"
}

Question types: TEXT · RADIO · CHECKBOX · SCALE · DATE · TIME


List Responses

GET /forms/{formId}/responses
import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/forms/FORM_ID/responses')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))

Summarize Responses

Get a natural language summary of all form responses.

GET /forms/{formId}/summary
import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/forms/FORM_ID/summary')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))

Use the returned summary field to present trends and insights to the user.


Export Responses to Excel

Generate a downloadable Excel file of all form responses.

POST /forms/export
import urllib.request, os, json
data = json.dumps({"formId": "FORM_ID"}).encode()
req = urllib.request.Request(
  'https://api.gformsfree.com/skill/forms/export',
  data=data, method='POST'
)
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))

Response:

{
  "downloadUrl": "https://api.gformsfree.com/skill/files/xxx.xlsx",
  "expiresIn": 600
}

Return downloadUrl to the user. Remind them the link expires in 10 minutes.


Error Handling

Status Meaning
400 Missing or invalid request parameters
401 Invalid or missing API key — check GFORMS_API_KEY
403 Subscription expired — renew in the Forms for Google Drive App
429 Rate limited (10 req/sec per account)
4xx/5xx Passthrough error from Google Forms API

Troubleshooting: API Key Issues

Verify your key is valid:

import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/auth/check')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))

If invalid, regenerate in the app: Settings → Connect AI Agent → Regenerate Key


Agent Instructions

  • Never expose the GFORMS_API_KEY value in any message to the user
  • Always confirm with the user before creating or modifying a form
  • When creating a form, ask for: topic, target audience, number of questions, and preferred question types
  • After creating a form, always return both responderUri (share with respondents) and editUri (for editing)
  • When exporting, always remind the user the download link expires in 10 minutes
  • Confirm twice before deleting any form

Resources

Usage Guidance
This skill appears coherent: it calls a single third‑party API and only needs one API key. Before installing, confirm you trust the external service (api.gformsfree.com / the Forms for Google Drive app). The API key you supply will likely allow that service to access your Google Forms data — review the app's privacy policy, OAuth scopes, and who operates it. Ideally: (1) find a homepage or source repository and review it; (2) use a test Google account first; (3) store/revoke the API key safely and revoke it if you stop using the skill; (4) avoid supplying Google account credentials directly to the skill — use the app's managed key flow as directed. If the maintainer/source/terms are provided, re-run the evaluation — that information would raise confidence to high.
Capability Analysis
Type: OpenClaw Skill Name: google-forms-with-forms-ios-app Version: 1.0.0 The skill provides a legitimate integration for Google Forms via a third-party service (api.gformsfree.com) associated with a specific iOS application. The Python code snippets in SKILL.md use standard libraries for API interaction, and the agent instructions include security best practices such as protecting the API key from exposure and requiring user confirmation for destructive actions like form deletion.
Capability Assessment
Purpose & Capability
The skill claims to integrate with Google Forms and its SKILL.md only requires a single API key (GFORMS_API_KEY) and uses a single third‑party API base (https://api.gformsfree.com/skill). All declared requirements match the described capability; no unrelated credentials or binaries are requested.
Instruction Scope
Runtime instructions are limited to issuing HTTPS requests to the documented API endpoints and reading the one declared environment variable. The SKILL.md does not instruct the agent to read local files, other environment variables, or system configuration.
Install Mechanism
There is no install specification and no code files to write to disk (instruction-only), so the skill itself does not install third‑party binaries or archives. The only external dependency is network access to the documented API.
Credentials
Only one environment variable (GFORMS_API_KEY) is required, which is proportional to an API proxy. However, the API key likely grants the third‑party service access to your Google Forms (managed OAuth via their app). The skill does not declare Google OAuth scopes or explain what the third‑party service can access, so the real privacy/privilege implications depend on that external service.
Persistence & Privilege
The skill is not marked always:true and requests no system‑level persistence or config changes. disable-model-invocation is false (normal), so agents can invoke it autonomously; that is expected for skills and not by itself a concern.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install google-forms-with-forms-ios-app
  3. After installation, invoke the skill by name or use /google-forms-with-forms-ios-app
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release: Seamless integration with the Google Forms API using managed OAuth and API key authentication via the Forms for Google Drive iOS App. - Features include creating new forms, adding questions, listing and managing forms, retrieving and summarizing responses, and exporting results to Excel. - Requires users to obtain a free API key from the companion iOS app for authentication. - Includes detailed API reference, error handling guidance, and agent instructions for secure and user-friendly operation.
Metadata
Slug google-forms-with-forms-ios-app
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Forms for Google Drive?

Google Forms API integration with managed OAuth. Create forms, add questions, export responses to Excel, and summarize response data. Use this skill when use... It is an AI Agent Skill for Claude Code / OpenClaw, with 134 downloads so far.

How do I install Forms for Google Drive?

Run "/install google-forms-with-forms-ios-app" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Forms for Google Drive free?

Yes, Forms for Google Drive is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Forms for Google Drive support?

Forms for Google Drive is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Forms for Google Drive?

It is built and maintained by dfaaa (@dfaaa); the current version is v1.0.0.

💬 Comments