Install
openclaw skills install dashformCreate and manage AI-powered smart forms, surveys, and quizzes through the Dashform MCP server. Supports open-ended, single-choice, multiple-choice, and rating questions with AI-powered conversational experiences.
openclaw skills install dashformCreate intelligent forms through the Dashform MCP (Model Context Protocol) server. This skill enables you to build surveys, quizzes, and feedback forms using MCP tools.
Use this skill when the user needs to:
IMPORTANT: This skill requires:
https://getaiform.comWhen the user asks to create a form, ALWAYS check for cached credentials first:
cat .claude/skills/dashform/credentials.json
userId, organizationId, and userName, proceed to Step 4If credentials are not cached, guide the user to provide their session token:
"I need to authenticate you with Dashform first. Please follow these steps:
1. Sign in to https://getaiform.com
2. Open browser DevTools (F12)
3. Go to Application → Cookies
4. Find 'better-auth.session_token'
5. Copy its value and send it to me
Once you provide the token, I'll cache your credentials automatically."
When the user provides their session token, run the setup script with the token as an argument:
.claude/skills/dashform/scripts/setup-credentials.sh "user-provided-token"
Then read the cached credentials:
cat .claude/skills/dashform/credentials.json
Extract userId, organizationId, and userName for use in form creation.
Ask the user what kind of form they want to create, addressing them by their userName:
"Great, {userName}! Your credentials are cached. What kind of form would you like to create?
For example:
- Customer satisfaction survey
- Employee feedback form
- Event registration
- Quiz or personality test
- NPS survey
Please describe what you need."
The Dashform MCP server provides the following tools:
create_form - Create a New FormCreates a new form with full configuration support including questions, screens, theme, and branding.
Basic Parameters:
organizationId (string, required): The organization ID to create the form inuserId (string, required): The user ID creating the formname (string, required): The name of the form (1-255 characters)type (string, optional): Form type - "structured" (traditional, default) or "dynamic" (AI-powered conversational)description (string, optional): Description of the formtone (string, optional): Tone for the form (e.g., "friendly", "professional")Advanced Configuration Parameters:
welcomeScreen (object, optional): Welcome screen configuration (title, message, CTA)endScreen (object, optional): End screen configurationendScreenEnabled (boolean, optional): Whether to enable the end screenendings (array, optional): Multiple quiz endings for conditional selectionquestions (array, optional): List of questions for structured formssnippets (array, optional): Information snippets for AI to reference (dynamic forms)maxFollowUpQuestions (number, optional): Max follow-up questions (0-10, for dynamic forms)theme (object, optional): Visual theme (colors, fonts)branding (object, optional): Branding settings (logo, watermark)backgrounds (array, optional): Array of backgrounds (max 10)Returns:
{
"success": true,
"formId": "uuid",
"name": "Form Name",
"type": "structured",
"description": "Form description",
"tone": "friendly",
"questionsCount": 5,
"createdAt": "2024-01-29T...",
"shareUrl": "https://getaiform.com/r/abc123",
"editUrl": "https://getaiform.com/forms/uuid"
}
create_reply - Create a Form ResponseCreates a new reply/response for an existing form.
Parameters:
formId (string, required): The ID of the form to create a reply fororganizationId (string, required): The organization ID the form belongs torespondentName (string, optional): Name of the person filling out the formrespondentEmail (string, optional): Email of the person filling out the formrespondentEmotion (string, optional): Initial emotional state - "neutral", "positive", or "negative". Defaults to "neutral"data (object, optional): Initial form data as key-value pairs (question key → answer)Returns:
{
"success": true,
"replyId": "uuid",
"formVersionId": "uuid",
"status": "partial",
"respondentName": "John Doe",
"respondentEmail": "john@example.com",
"respondentEmotion": "neutral",
"data": {},
"createdAt": "2024-01-29T..."
}
IMPORTANT: Read Documentation First
Before generating the form JSON configuration, ALWAYS read these files:
cat .claude/skills/dashform/references/SCHEMA.md
cat .claude/skills/dashform/references/API.md
This ensures correct structure and prevents MCP call errors.
Based on the user's requirements, generate a complete form JSON configuration.
CRITICAL RULES:
Always create complete, production-ready forms with:
DO NOT create minimal forms with only name and description
Reference the examples/ directory for complete templates:
customer-survey.json - Customer satisfaction surveyquiz.json - Personality quiz with multiple endingsemployee-satisfaction-survey.json - Employee engagement surveyevent-registration.json - Event registration formnps-survey.json - NPS survey with AI follow-upsReference the references/ directory for detailed documentation:
SCHEMA.md - Complete form structure and question typesAPI.md - API endpoint documentationForm Type Selection:
type: "structured" (or omit type parameter)type: "dynamic" when user explicitly mentions:
Save the JSON configuration:
Save the generated form configuration to the data/ directory with a descriptive filename:
# Filename format: {form-name}_{timestamp}.json
# Example: customer-survey_2024-01-30-143022.json
Note: Do NOT include userId or organizationId in the JSON file - these will be added automatically by the create-form script.
Run the create-form script with the JSON file path:
.claude/skills/dashform/scripts/create-form.sh "path/to/form.json"
The script will:
After successfully creating the form, provide:
Example response:
✅ Form created successfully!
📋 Share URL: https://getaiform.com/r/abc123
(Share this link with your respondents)
✏️ Edit URL: https://getaiform.com/forms/uuid
(Use this to customize your form)
| Type | Description | Use Case |
|---|---|---|
structured | Traditional fixed-question form (default) | Contact forms, registrations, surveys with fixed questions |
dynamic | AI-powered conversational form | Complex surveys, interviews, personality quizzes |
Recommendation: Use "structured" for most cases with predefined questions. Use "dynamic" only when you need AI-powered conversational experiences with follow-up questions.
| Type | Key | Description |
|---|---|---|
| Open-ended | open-ended | Free text input |
| Single Choice | single-choice | Radio buttons (one answer) |
| Multiple Choice | multiple-choice | Checkboxes (multiple answers) |
| Rating | rating | 1-5 star rating |
If you get connection errors:
https://getaiform.com/api/mcpIf you get authentication errors:
If form creation fails: