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.
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:
- Validates the required input (Form URL)
- Retrieves the Google Forms API credentials
- Uses the URL to identify and access the Google Form
- Establishes a connection to the form using the provided credentials
- 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}}