Skip to main content

Open Form

Opens an existing Google Form using its URL for further operations.

Common Properties​

  • Name - The custom name of the node.
  • Color - The custom color of the node.
  • Delay Before (sec) - Waits in seconds before executing the node.
  • Delay After (sec) - Waits in seconds after executing node.
  • Continue On Error - Automation will continue regardless of any error. The default value is false.
info

If the ContinueOnError property is true, no error is caught when the project is executed, even if a Catch node is used.

Inputs​

  • Form URL - The full URL of the Google Form to open.

Options​

  • Credentials - The Google Forms API credentials used to authenticate with the service.

Output​

  • form_id - The unique identifier of the opened form.

How It Works​

The Open Form node opens an existing Google Form using its URL, making it available for further operations. When executed, the node:

  1. Validates the required input (Form URL)
  2. Retrieves the Google Forms API credentials
  3. Uses the URL to identify and access the Google Form
  4. Establishes a connection to the form using the provided credentials
  5. Returns the ID of the opened form for use with other nodes

Requirements​

  • Valid Google Forms API credentials
  • Appropriate permissions to access the form
  • Valid Google Form URL

Error Handling​

The node will return specific errors in the following cases:

  • Empty or invalid Form URL
  • Invalid or missing Credentials
  • Google Forms API errors during form access
  • Insufficient permissions to access the form
  • Form URL does not point to a valid Google Form

Usage Notes​

  • The Form URL should be the full URL as seen in the browser when viewing the form
  • The form must be accessible to the account associated with the credentials
  • The returned form_id can be used with other Google Forms nodes to modify or retrieve information about the form
  • This node does not modify the form in any way; it simply establishes a connection
  • The form must exist and be accessible at the time of execution
  • Both edit URLs (/edit) and view URLs (/viewform) are supported - the form ID is extracted automatically
  • This node is required before using GetResponses, GetForm, AddQuestion, or DeleteQuestion nodes

Accepted URL Formats​

The Open Form node accepts Google Form URLs in the following formats:

https://docs.google.com/forms/d/{FORM_ID}/edit
https://docs.google.com/forms/d/{FORM_ID}/viewform
https://docs.google.com/forms/d/{FORM_ID}/

Example Use Cases​

Work with Existing Survey​

Form URL: "https://docs.google.com/forms/d/1ABC123xyz/edit"
Credentials: service-account-credentials

Output: form_id → Use to add questions or get responses

Use Case: Open an existing customer feedback form to add new questions or retrieve responses

Automated Response Collection​

Form URL: "https://docs.google.com/forms/d/daily-survey-123/edit"
Credentials: oauth2-user-credentials

Output: form_id

Flow:
1. Open Form
2. Get Responses (using form_id)
3. Process and analyze responses

Use Case: Daily automated collection and processing of survey responses

Form Modification Workflow​

Form URL: {{form_url_from_database}}
Credentials: service-account-credentials

Output: form_id

Flow:
1. Retrieve form URL from database
2. Open Form
3. Get Form (check current structure)
4. Add or delete questions as needed
5. Update database with modification timestamp

Use Case: Programmatically update forms based on business requirements

Multi-Form Processing​

Form URLs: ["url1", "url2", "url3"]

For Each url in Form URLs:
1. Open Form
- Form URL: {{url}}
- Output: form_id
2. Get Responses
- Form Id: {{form_id}}
3. Aggregate responses

Use Case: Collect responses from multiple related forms for consolidated reporting

Tips for Effective Use​

  • URL Source: Form URLs can come from:

    • Static configuration values
    • Database queries
    • Spreadsheet cells
    • Previous automation steps
    • User input or API calls
  • Credentials Management:

    • Use Service Account credentials for automated, unattended access
    • Use OAuth2 when accessing forms owned by specific user accounts
    • Store credentials securely in Robomotion's vault
  • Error Handling: Always implement error handling for cases where:

    • The form URL is invalid or malformed
    • The form has been deleted or is no longer accessible
    • Credentials lack permission to access the form
  • Form ID Reuse: After opening a form once, you can reuse the form_id for multiple operations in the same flow without reopening

  • Caching: The OpenForm node caches the connection internally, so subsequent nodes that use the form_id don't need to reconnect

Common Errors and Solutions​

Error: "Invalid Google Form URL"​

Cause: The URL provided is not a valid Google Forms URL or is malformed. Solution:

  • Ensure the URL follows the format: https://docs.google.com/forms/d/{FORM_ID}/edit
  • Copy the URL directly from your browser when viewing the form
  • Remove any query parameters or extra path segments

Error: "URL cannot be empty"​

Cause: The Form URL input is empty or not provided. Solution: Provide a valid Google Forms URL. Verify that your variable or input field contains the URL.

Error: "Missing client_id or client_secret in credentials"​

Cause: OAuth2 credentials are incomplete. Solution: Ensure your OAuth2 credentials file contains both client_id and client_secret fields.

Error: "Invalid credentials format: missing content field"​

Cause: Credentials vault item is improperly formatted. Solution: Verify credentials are stored correctly in the vault with proper JSON structure.

Error: "Failed to access form" or "Form not found"​

Cause: The form doesn't exist, has been deleted, or credentials lack access. Solution:

  • Verify the form exists by opening the URL in a browser
  • For Service Accounts: Share the form with the service account email address
  • For OAuth2: Ensure the authenticated user has access to the form
  • Check that the form hasn't been moved to trash

Error: "Insufficient permissions to access the form"​

Cause: Credentials don't have permission to view or edit the form. Solution:

  • Share the form with the service account email (found in credentials JSON)
  • Grant "Editor" permission if you need to modify the form
  • Grant "Viewer" permission if you only need to read responses
  • For OAuth2, ensure the user owns the form or has been granted access

Integration Examples​

Daily Survey Response Workflow​

Trigger: Daily at 8:00 AM

1. Set Variable: form_url = "https://docs.google.com/forms/d/daily-feedback/edit"

2. Open Form
- Form URL: {{form_url}}
- Credentials: google-forms-service-account
- Output: form_id

3. Get Responses
- Form Id: {{form_id}}
- Output: responses

4. For Each response in responses:
- Process response data
- Send to analytics platform
- Store in database

5. Generate daily summary report

Form Management Dashboard​

1. Query Database: SELECT form_name, form_url FROM active_forms

2. For Each form in query results:
- Open Form
- Form URL: {{form.form_url}}
- Output: form_id

- Get Form
- Form Id: {{form_id}}
- Output: form_details

- Get Responses
- Form Id: {{form_id}}
- Output: responses

- Calculate:
- Total questions: {{form_details.items.length}}
- Total responses: {{responses.length}}

- Update Dashboard:
- Form: {{form.form_name}}
- Questions: {{total_questions}}
- Responses: {{total_responses}}
- Last Updated: {{current_timestamp}}

Dynamic Form Updates​

1. Receive webhook: new_product_launch event

2. Set Variable: form_url = "https://docs.google.com/forms/d/product-interest/edit"

3. Open Form
- Form URL: {{form_url}}
- Output: form_id

4. Add Closed-Ended Question
- Form Id: {{form_id}}
- Question Title: "Are you interested in {{product_name}}?"
- Answers: ["Very Interested", "Somewhat Interested", "Not Interested"]
- Index: 3

5. Log: "Added question about {{product_name}} to interest form"

Multi-Language Form Processing​

Form URLs by Language:
- English: "https://docs.google.com/forms/d/en-survey/edit"
- Spanish: "https://docs.google.com/forms/d/es-survey/edit"
- French: "https://docs.google.com/forms/d/fr-survey/edit"

For Each language in ["en", "es", "fr"]:
1. Open Form
- Form URL: {{language_forms[language]}}
- Output: form_id

2. Get Responses
- Form Id: {{form_id}}
- Output: responses

3. Tag responses with language: {{language}}

4. Aggregate all responses for analysis

Form Access Validation​

1. Read form URLs from configuration file

2. For Each url in form_urls:
- Try:
- Open Form
- Form URL: {{url}}
- Output: form_id
- Log: "✓ Successfully accessed form: {{url}}"
- Add to accessible_forms list

- Catch Error:
- Log: "✗ Failed to access form: {{url}}"
- Error: {{error.message}}
- Add to inaccessible_forms list

3. Generate Access Report:
- Accessible: {{accessible_forms.length}}
- Inaccessible: {{inaccessible_forms.length}}
- Details: {{inaccessible_forms}}