# Mobyform > Mobyform helps teams build forms, surveys, and exams, then route every response to analytics, teammates, and business tools. Mobyform is a web-based form platform for teams that need forms, surveys, online exams, response analytics, custom domains, integrations, and workflow-ready submission management. ## Product Facts - Category: Online form builder, survey platform, exam builder, and response workflow software - Primary audience: teams that collect structured responses for operations, marketing, HR, events, education, feedback, and internal workflows - Core capabilities: drag-and-drop form building, 60+ field components, conditional logic, team collaboration, online exams, data export, analytics, custom domains, webhooks, API access, and integrations - Application URL: https://build.mobyform.com - Public website: https://mobyform.com - Support email: Mobyform ## Key Pages - [Homepage](https://mobyform.com/en) - [Pricing](https://mobyform.com/en/pricing) - [Features](https://mobyform.com/en/features) - [Form components](https://mobyform.com/en/features/form-components) - [Alternatives](https://mobyform.com/en/alternatives) - [Google Forms alternative](https://mobyform.com/en/alternatives/google-forms) - [Typeform alternative](https://mobyform.com/en/alternatives/typeform) - [Jotform alternative](https://mobyform.com/en/alternatives/jotform) - [Docs](https://mobyform.com/en/docs) - [FAQ](https://mobyform.com/en/docs/faq) - [API docs](https://mobyform.com/en/docs/advanced/api) - [Security overview](https://mobyform.com/en/legal/security) - [GDPR overview](https://mobyform.com/en/legal/gdpr) ## Buyer Journey ### Awareness Understand form builders, surveys, online exams, and response workflows. - [Features](https://mobyform.com/en/features) - [Form components](https://mobyform.com/en/features/form-components) - [Getting started](https://mobyform.com/en/help/getting-started) ### Consideration Compare Mobyform with familiar form tools and evaluate workflow fit. - [Alternatives](https://mobyform.com/en/alternatives) - [Google Forms alternative](https://mobyform.com/en/alternatives/google-forms) - [Typeform alternative](https://mobyform.com/en/alternatives/typeform) - [Jotform alternative](https://mobyform.com/en/alternatives/jotform) ### Decision Confirm pricing, trust, implementation path, and support expectations. - [Pricing](https://mobyform.com/en/pricing) - [Security overview](https://mobyform.com/en/legal/security) - [Support](https://mobyform.com/en/support) - [Contact](https://mobyform.com/en/contact) ## Topic Clusters ### Form building and data collection - [Form components](https://mobyform.com/en/features/form-components) - [Create a form docs](https://mobyform.com/en/docs/create-form) - [Field types docs](https://mobyform.com/en/docs/field-types) - [Publishing docs](https://mobyform.com/en/docs/publishing) ### Surveys, feedback, and research workflows - [Survey solution](https://mobyform.com/en/solutions/survey) - [Feedback solution](https://mobyform.com/en/solutions/feedback) - [Data management docs](https://mobyform.com/en/docs/data-management) - [Survey templates docs](https://mobyform.com/en/docs/templates) ### Online exams and assessments - [Online exam solution](https://mobyform.com/en/solutions/online-exam) - [Exam docs](https://mobyform.com/en/docs/exam) - [Question bank and form logic docs](https://mobyform.com/en/docs/form-logic) ### Integrations, API, and automation - [Integrations docs](https://mobyform.com/en/docs/integrations) - [API docs](https://mobyform.com/en/docs/advanced/api) - [Webhook and automation docs](https://mobyform.com/en/docs/guides/api-quickstart) ### Security, privacy, and procurement - [Security overview](https://mobyform.com/en/legal/security) - [GDPR overview](https://mobyform.com/en/legal/gdpr) - [Data processing agreement](https://mobyform.com/en/legal/dpa) - [Subprocessors](https://mobyform.com/en/legal/subprocessors) ### Competitive evaluation - [Alternatives hub](https://mobyform.com/en/alternatives) - [Google Forms alternative](https://mobyform.com/en/alternatives/google-forms) - [Typeform alternative](https://mobyform.com/en/alternatives/typeform) - [Jotform alternative](https://mobyform.com/en/alternatives/jotform) - [Pricing](https://mobyform.com/en/pricing) ## Machine-Readable Resources - [Pricing markdown](https://mobyform.com/pricing.md) - [Full documentation markdown](https://mobyform.com/llms-full.txt) - [Sitemap](https://mobyform.com/sitemap.xml) - [Robots](https://mobyform.com/robots.txt) ## Documentation - [Team Collaboration](https://mobyform.com/en/docs/collaboration) - [Markdown](https://mobyform.com/en/docs/collaboration.mdx) - [Create a Form](https://mobyform.com/en/docs/create-form) - [Markdown](https://mobyform.com/en/docs/create-form.mdx) - [Data Management](https://mobyform.com/en/docs/data-management) - [Markdown](https://mobyform.com/en/docs/data-management.mdx) - [Exams & Assessments](https://mobyform.com/en/docs/exam) - [Markdown](https://mobyform.com/en/docs/exam.mdx) - [FAQ](https://mobyform.com/en/docs/faq) - [Markdown](https://mobyform.com/en/docs/faq.mdx) - [Field Types](https://mobyform.com/en/docs/field-types) - [Markdown](https://mobyform.com/en/docs/field-types.mdx) - [Form Editor](https://mobyform.com/en/docs/form-editor) - [Markdown](https://mobyform.com/en/docs/form-editor.mdx) - [Conditional Logic](https://mobyform.com/en/docs/form-logic) - [Markdown](https://mobyform.com/en/docs/form-logic.mdx) - [Form Settings](https://mobyform.com/en/docs/form-settings) - [Markdown](https://mobyform.com/en/docs/form-settings.mdx) - [Getting Started](https://mobyform.com/en/docs) - [Markdown](https://mobyform.com/en/docs.mdx) - [Integrations](https://mobyform.com/en/docs/integrations) - [Markdown](https://mobyform.com/en/docs/integrations.mdx) - [Order Forms](https://mobyform.com/en/docs/payment) - [Markdown](https://mobyform.com/en/docs/payment.mdx) - [Publishing & Sharing](https://mobyform.com/en/docs/publishing) - [Markdown](https://mobyform.com/en/docs/publishing.mdx) - [Templates](https://mobyform.com/en/docs/templates) - [Markdown](https://mobyform.com/en/docs/templates.mdx) - [Theme Customization](https://mobyform.com/en/docs/theme) - [Markdown](https://mobyform.com/en/docs/theme.mdx) - [AI Roadmap](https://mobyform.com/en/docs/advanced/ai) - [Markdown](https://mobyform.com/en/docs/advanced/ai.mdx) - [API](https://mobyform.com/en/docs/advanced/api) - [Markdown](https://mobyform.com/en/docs/advanced/api.mdx) - [Custom Domain](https://mobyform.com/en/docs/advanced/custom-domain) - [Markdown](https://mobyform.com/en/docs/advanced/custom-domain.mdx) - [Dimension Evaluation](https://mobyform.com/en/docs/advanced/dimension) - [Markdown](https://mobyform.com/en/docs/advanced/dimension.mdx) - [GDPR Controls](https://mobyform.com/en/docs/advanced/gdpr) - [Markdown](https://mobyform.com/en/docs/advanced/gdpr.mdx) - [Advanced Features](https://mobyform.com/en/docs/advanced) - [Markdown](https://mobyform.com/en/docs/advanced.mdx) - [Lottery](https://mobyform.com/en/docs/advanced/lottery) - [Markdown](https://mobyform.com/en/docs/advanced/lottery.mdx) - [API Quick Start](https://mobyform.com/en/docs/guides/api-quickstart) - [Markdown](https://mobyform.com/en/docs/guides/api-quickstart.mdx) - [How to Create an Order Form](https://mobyform.com/en/docs/guides/create-order-form) - [Markdown](https://mobyform.com/en/docs/guides/create-order-form.mdx) - [How to Create an Online Quiz](https://mobyform.com/en/docs/guides/create-quiz) - [Markdown](https://mobyform.com/en/docs/guides/create-quiz.mdx) - [How to Create a Registration Form](https://mobyform.com/en/docs/guides/create-registration) - [Markdown](https://mobyform.com/en/docs/guides/create-registration.mdx) - [How to Create a Survey](https://mobyform.com/en/docs/guides/create-survey) - [Markdown](https://mobyform.com/en/docs/guides/create-survey.mdx) - [Custom Domain Setup](https://mobyform.com/en/docs/guides/custom-domain-setup) - [Markdown](https://mobyform.com/en/docs/guides/custom-domain-setup.mdx) - [How to Embed Forms in Your Website](https://mobyform.com/en/docs/guides/embed-form) - [Markdown](https://mobyform.com/en/docs/guides/embed-form.mdx) - [GDPR Controls Setup](https://mobyform.com/en/docs/guides/gdpr-setup) - [Markdown](https://mobyform.com/en/docs/guides/gdpr-setup.mdx) - [Guides](https://mobyform.com/en/docs/guides) - [Markdown](https://mobyform.com/en/docs/guides.mdx) - [Offline Form Collection](https://mobyform.com/en/docs/guides/offline-collection) - [Markdown](https://mobyform.com/en/docs/guides/offline-collection.mdx) - [How to Use Print Templates](https://mobyform.com/en/docs/guides/print-template) - [Markdown](https://mobyform.com/en/docs/guides/print-template.mdx) - [How to Reuse a Theme](https://mobyform.com/en/docs/guides/reuse-theme) - [Markdown](https://mobyform.com/en/docs/guides/reuse-theme.mdx) - [How to Save a Form Template](https://mobyform.com/en/docs/guides/save-form-template) - [Markdown](https://mobyform.com/en/docs/guides/save-form-template.mdx) --- # Documentation Corpus # Team Collaboration (https://mobyform.com/en/docs/collaboration) ## Team Collaboration Mobyform supports multi-user form management with a flexible permission system for efficient teamwork. ## Organization Management ### Create an Organization 1. Go to the **"Team"** page 2. Click **"Create Organization"** 3. Enter the organization name and description 4. Invite team members to join ### Organization Roles | Role | Permission Level | Description | | ----------- | ---------------- | ------------------------------------------------- | | **Owner** | Highest | Full control, including deleting the organization | | **Admin** | High | Manage members, settings, billing | | **Member** | Medium | Create and edit forms | | **Limited** | Low | Access only authorized workspaces | ### Workspaces Use workspaces to organize and group forms: * Create multiple workspaces * Group by project or department * Assign members to workspaces ## Inviting Members ### Invitation Methods * **Email Invitation** — Send invitation link via email * **Link Invitation** — Generate a shareable invite link * **Token Invitation** — Use an invitation token ### Accepting Invitations Invitees join the organization through the link: 1. Click the invitation link 2. Sign in or create an account 3. Confirm joining the organization ## Form-Level Collaboration ### Add Collaborators Add collaborators to individual forms: 1. Open the form's **"Settings"** → **"Collaboration"** 2. Click "Add Collaborator" 3. Choose collaborator type: * **Individual User** — Specify a user * **Department** — Specify an entire department * **Role** — Specify all users in a role 4. Assign a permission group ### Permission Groups Use preset or custom permission groups to control collaborator access: #### Preset Permission Groups | Permission Group | Included Permissions | | ---------------- | ------------------------------------ | | **Data Viewer** | View submission data | | **Data Manager** | View, add, edit, delete, export data | | **Form Editor** | Edit form + view data | | **Full Access** | All permissions | #### Custom Permission Groups Create custom groups with granular permission control: **Editing Permissions:** * Edit form structure * Configure conditional logic * Manage theme styling * Configure dimension evaluation **Data Permissions:** * View data details * Add data * Import data * Export data * Download attachments * Search and query * Print data **Publishing Permissions:** * Manage publishing settings * Public publishing * Public queries * Targeted publishing * Permission group management * Data helper * Notification sharing * Lottery management * Print templates * Certificate generation **Analytics Permissions:** * View statistics dashboard * View charts * Data analysis **Settings Permissions:** * Exam settings * Submission settings * Fill settings * Notification settings * Share settings * Reply settings * Collaboration settings ### Field-Level Permissions Granular permission control: * **Field Visibility** — Control which fields collaborators can see * **Field Edit Rights** — Control which fields collaborators can edit * **Data-Level Permissions** — Control which data range collaborators can access ## Member Management ### View Members View all organization members in "Member Management": * Name and email * Role and permissions * Join date * Recent activity ### Manage Members * **Change Role** — Promote or demote permissions * **Remove Member** — Remove from organization * **Disable Account** — Temporarily disable access ## Audit Logs Track team activity: * Form change records * Data access logs * Permission change logs * Export audit logs ## Next Steps * [Integrations](/docs/integrations) - Connect third-party services * [Data Management](/docs/data-management) - Review, export, and manage submissions --- # Create a Form (https://mobyform.com/en/docs/create-form) ## Create a Form Mobyform offers multiple ways to create forms for different scenarios. ## Form Types | Type | Description | Use Cases | | ------------------ | ----------------------------- | --------------------------------------- | | **Standard Form** | General data collection form | Surveys, registrations, feedback | | **Exam Form** | Quiz with scoring and ranking | Online tests, assessments, practice | | **Marketing Form** | Form for marketing campaigns | Event registration, raffles, promotions | ## Creation Methods ### Blank Form 1. Click **"New Form"** in your workspace 2. Select **"Blank Form"** 3. Choose a form type (Standard / Exam / Marketing) 4. Enter a title and description 5. Start designing in the editor ### From Template 1. Click **New Form** and open **Template Library** 2. Browse public categories or search by template name 3. Preview the template to check its fields, layout, logic, and theme 4. Click **Use** 5. Mobyform creates a new form in the current workspace and opens it in the editor 6. Customize fields, logic, theme, and settings before publishing You can also save your own completed forms as templates and reuse them later from **My Templates**. ### AI Roadmap AI-assisted form generation is planned, but it is not currently available as a shipped self-serve creation method. Use Blank Form, Template Library, or Question Bank workflows for production forms today. ### From Question Bank 1. Open the question bank 2. Select the questions you need 3. Add them to a new form in batch ## Form Management ### Folders * Create folders to organize your forms * Drag and drop forms between folders * Folders support nesting ### Form Actions * **Duplicate** — Create a full copy of the form * **Rename** — Change the form title * **Move** — Move to another folder * **Delete** — Delete the form (goes to trash) * **Export** — Export form config as JSON * **Save as Template** — Save to your personal template library or, if you have permission, as a public template When saving as a template, add a name, optional description, optional cover image, and category. Private templates can use personal categories; public templates can only use public categories or uncategorized. ### Form Status | Status | Description | | ------------- | ------------------------------------------------- | | **Draft** | Form is being edited, not published | | **Published** | Form is live and collecting data | | **Stopped** | Form is archived, no longer accepting submissions | ## Next Steps * [Form Editor](/docs/form-editor) — Learn how to design forms in the editor * [Templates](/docs/templates) - Use and save reusable templates * [Field Types](/docs/field-types) — Explore all available field types --- # Data Management (https://mobyform.com/en/docs/data-management) ## Data Management After publishing your form and collecting responses, manage all submissions from the "Data" page. ## Viewing Data ### Table View All submissions are displayed in a table by default: * Each row represents one submission * Each column corresponds to a form field * Customize visible columns * Sort by any column ### Single Record Detail Click any row to view the full submission details: * All field values * Submission time * Submitter info * Attachment preview * Replies and comments ## Filtering & Search ### Field Filters Filter data by field values: * Text fields — Contains, equals, is empty, etc. * Number fields — Greater than, less than, range, etc. * Selection fields — Contains specific options * Date fields — Date range filtering ### Time Range Quick time-based filters: | Quick Option | Description | | ------------ | ----------------------- | | Today | Today's submissions | | Yesterday | Yesterday's submissions | | Last 7 Days | Past week | | Last Week | Previous calendar week | | This Month | Current month | | Last Month | Previous month | | This Quarter | Current quarter | | This Year | Current year | ### Full-Text Search Enter keywords to search across all field content. ## Data Operations ### Add Data Manually add a new submission record. ### Edit Data Modify field values in existing submissions. ### Delete Data Delete selected submission records. * Single record deletion * Bulk deletion ### Print Data Print one or more submission records. * Use default print template * Use custom print templates ## Import & Export ### Export Data Export submissions to a file: * **Excel (XLSX)** — Formatted spreadsheet * **CSV** — Universal comma-separated format Export options: * Export current page * Export selected records * Export all data * Customize export columns ### Import Data Import data from external files into the form. ### Download Attachments Bulk download file attachments from submissions. ## Analytics ### Submission Statistics * **Total Submissions** — Cumulative submission count * **Daily Trend** — Daily submission trend chart * **Completion Rate** — Form fill completion rate ### Field Analysis Generate charts for each field: * **Selection fields** — Pie/bar charts showing option distribution * **Number fields** — Average, max, min, median * **Rating fields** — Score distribution and average * **NPS** — Net Promoter Score calculation and distribution ### Chart Types * Bar charts * Pie / Donut charts * Line charts * Heat maps ### Public Statistics Share the analytics page publicly — viewable without login. ## Data Replies When reply is enabled, you can comment on each submission: * Text replies * Reply notifications ## Permission Control Data management supports granular permissions: | Permission | Description | | ---------------- | ---------------------------- | | **View Details** | View full submission content | | **Add** | Manually add data | | **Import** | Import data from files | | **Export** | Export data to files | | **Download** | Download attachments | | **Query** | Search and filter data | | **Print** | Print data records | ## Next Steps * [Exams](/docs/exam) — Learn about exam scoring and ranking * [Collaboration](/docs/collaboration) — Invite team members to manage data --- # Exams & Assessments (https://mobyform.com/en/docs/exam) ## Exams & Assessments Mobyform's exam mode lets you create online tests, knowledge assessments, and practice quizzes with auto-scoring, rankings, and score analytics. ## Creating an Exam 1. Select **"Exam Form"** type when creating a new form 2. Add question fields (radio, checkbox, fill-in, etc.) 3. Configure scoring rules in "Exam Settings" 4. Publish the exam ## Exam Settings ### Scoring Configuration * **Auto-Scoring** — System scores automatically based on correct answers * **Manual Scoring** — Admin manually grades subjective questions * **Mixed Scoring** — Auto-score objective + manually grade subjective ### Answer Setup Set the correct answer and score for each question: * **Correct Answer** — Define the standard answer * **Question Score** — Points for each question * **Answer Explanation** — Provide an explanation (optional) ### Exam Behavior * **Show Correct Answers** — Whether to reveal correct answers after submission * **Show Explanations** — Whether to show answer explanations * **Show Score** — Display score immediately after submission * **Allow Retakes** — Whether to allow multiple attempts * **Time Limit** — Set exam duration * **Shuffle Questions** — Randomize question order * **Shuffle Options** — Randomize option order ## Score Management ### Auto-Scoring Scores are calculated automatically upon submission: * Objective questions (radio, checkbox, true/false) are auto-graded * Partial credit for multi-select questions ### Manual Scoring Admins manually grade subjective questions: 1. Go to the "Data" page 2. Click the submission to grade 3. Score each question 4. Submit the grading result ### Score Lookup Users can look up their exam results: * Total and earned score * Per-question correctness * Correct answer comparison ## Ranking System ### Leaderboard Auto-generated rankings by score: * Total score ranking * Sorted by submission time * Publicly shareable leaderboard ### Public Rankings Make the leaderboard public for everyone to view. ## Score Analytics ### Overview * **Average Score** — Average across all participants * **Highest / Lowest Score** — Score extremes * **Pass Rate** — Percentage reaching the passing score * **Score Distribution** — Count by score range ### Question Analysis * **Correct Rate** — Per-question accuracy * **Score Rate** — Average scoring rate per question * **Discrimination** — Question discrimination analysis ## Grade Levels Set score-to-grade mappings: | Score Range | Grade | | ----------- | --------- | | 90-100 | Excellent | | 80-89 | Good | | 70-79 | Average | | 60-69 | Pass | | 0-59 | Fail | ## Question Bank ### Bank Management Build a reusable question library: * Create categories * Bulk import questions * Quickly add questions from the bank to exams ### Question Types * Single choice * Multiple choice * True/False * Fill-in-the-blank * Short answer ## Next Steps * [Templates](/docs/templates) — Use exam templates for quick creation * [Data Management](/docs/data-management) — Manage exam submission data --- # FAQ (https://mobyform.com/en/docs/faq) ## Frequently Asked Questions Find answers to the most common questions about Mobyform. ## Account & Login ### How do I sign up for Mobyform? Visit the Mobyform website and click "Sign Up". The public site will redirect you to the application at `build.mobyform.com`, where you can complete registration. ### I forgot my password. What should I do? Click "Forgot Password" on the application login page and enter your registered email. You'll receive the next step in the recovery flow there. ### Can I sign in with social accounts? Available sign-in methods depend on the current application configuration. Use the login page on `build.mobyform.com` to see the sign-in options currently enabled for your workspace. ### How do I update my account information? After signing in to the application, open your account settings there to update your profile and other personal details. ## Creating Forms ### How many forms can I create? The number of forms depends on your plan. The Free plan has limited form creation, while Pro and Business plans offer higher limits. Check the pricing page for details. ### What form types are available? Mobyform supports three form types: * **Standard Form** — For surveys, registrations, feedback collection * **Exam Form** — With auto-scoring, ranking, and grade analytics * **Marketing Form** — For raffles, promotions, and campaigns ### What field types are supported? Mobyform offers 85+ field types including text inputs, multiple choice, date/time pickers, rating scales, matrix questions, file uploads, signatures, geolocation, verification widgets, and more. See [Field Types](/docs/field-types) for the full list. ### How do I create a form from a template? Click "New Form" → "Template Library", browse or search for a template, then click "Use This Template". The template loads into the editor where you can freely modify everything. ### Can I duplicate an existing form? Yes. Right-click a form in your form list and select "Duplicate". The system creates a complete copy including all fields, logic, and settings. ### Can forms have multiple pages? Yes. Add a "Pagination" component in the editor to split your form into multiple pages. It supports Previous/Next navigation and a "one question per page" mode. ## Form Design ### How do I set up conditional logic? Click the "Logic" tab in the editor toolbar, or click "Add Logic" in a field's properties. You can show/hide fields based on answers, toggle required status, or jump to different pages. See [Conditional Logic](/docs/form-logic). ### How do I customize the form appearance? Click the "Theme" tab in the editor to choose a preset theme or customize colors, fonts, backgrounds, and button styles. Pro plans also support custom CSS. See [Theme Customization](/docs/theme). ### Can I remove the Mobyform branding? Pro and above plans can remove the Mobyform branding from the form footer. Toggle off the branding switch in the "Theme" settings. ### How do I add a form cover? In the theme settings, find the "Cover" section to set a cover color, upload a cover image, or add a title and description. ### How do I add a watermark? Enable the watermark feature in "Form Settings" or "Theme". You can add custom text watermarks or automatic username watermarks to prevent screenshots. ## Publishing & Sharing ### How do I publish a form? Once your form is ready, click the "Publish" button in the top-right corner of the editor. You'll get a shareable link and QR code. ### What sharing options are available? * **Link sharing** — Copy and share the direct link * **QR code** — Download a QR code image for offline scanning * **Website embed** — Use iframe code to embed in your website * **Popup embed** — Show the form in a popup on button click * **Email/Social** — Share via email or social media ### How do I password-protect a form? Go to "Form Settings" → "Access Control" and enable "Password Protection". Set a password that users must enter to view and fill out the form. ### Can I restrict who can fill out my form? Yes. You can restrict access through: * Password protection * Whitelist restrictions * Login requirement * IP restrictions * Time limits (set open/close times) ### How do I set a submission deadline? In "Form Settings" → "Submission Settings", set a deadline. The form automatically stops accepting submissions when the deadline is reached. ### Can I limit submissions per person? Yes. In "Form Settings" → "Submission Settings", set "Submissions per person" to limit how many times the same user can submit. ### How do I embed a form in my website? Get the iframe embed code from the publishing page and paste it into your website's HTML. You can also use the popup embed option. See [Publishing & Sharing](/docs/publishing). ### Can I use a custom domain? Pro and above plans support custom domains. Go to "Settings" → "Domains", add your domain, configure the DNS CNAME record, and verify. See [Custom Domains](/docs/advanced/custom-domain). ## Data Management ### How do I view form submissions? Click the "Data" tab on the form detail page to see all submissions in a table. Click any row to view the full details. ### How do I export data? Click the "Export" button on the data management page, choose a format (Excel or CSV), and select whether to export the current page, selected records, or all data. ### Can I manually add data? Yes. Click the "Add" button on the data management page to manually enter and add a data record. ### Can deleted data be recovered? Deleted data goes to the recycle bin where it can be restored. Data permanently deleted from the recycle bin cannot be recovered. ### How do I filter data? The data management page offers multiple filters: filter by field value, date range, or full-text search. Combine multiple filters to precisely locate data. ### Can I perform bulk operations? Yes. Select multiple records to perform bulk delete, bulk export, and other batch operations. ### How do I print data? In the data detail view or list, select "Print" to print records using the default template or a custom print template. ## Exam Features ### How do I create an online exam? Create a new form and select "Exam Form" type. Add questions (multiple choice, fill-in-the-blank, etc.), configure correct answers and point values in the exam settings, then publish. See [Exams & Quizzes](/docs/exam). ### What scoring methods are supported? * **Auto-scoring** — Objective questions (multiple choice, true/false) are graded automatically * **Manual scoring** — Subjective questions are graded by administrators * **Mixed scoring** — Objective auto + subjective manual ### Can I set a time limit for exams? Yes. Set the exam duration in the exam settings. The system auto-submits when time runs out. ### Can questions be randomized? Yes. Enable "Shuffle Questions" and "Shuffle Options" in exam settings so each test-taker sees questions and options in a different order. You can also randomly draw a set number of questions from a question bank. ### How do I view exam results? The data management page shows each test-taker's score. The system automatically calculates total scores, rankings, accuracy rates, and other statistics. ## Team Collaboration ### How do I invite team members? Create an organization on the "Team" page, then add members via email invitation, invite link, or token invitation. ### What permission roles are available? Organizations have four roles: Owner, Admin, Member, and Restricted Member. At the form level, you can fine-tune each collaborator's access through permission groups. See [Team Collaboration](/docs/collaboration). ### Can I add collaborators to individual forms? Yes. Go to a form's "Settings" → "Collaboration" to add collaborators with different permission groups (Data View, Data Management, Form Editor, Full Access, etc.). ### What are workspaces? Workspaces help organize forms within an organization by project or department. You can create multiple workspaces and assign different members to each. ## Orders ### Can I collect payments through forms? No. Mobyform does not currently process payments inside forms. You can use [Order Forms](/docs/payment) to capture product choices, quantities, registrations, and contact details, then complete billing in your existing checkout, invoice, or payment system. ### Can I show prices or totals in an order form? Yes. Use choice fields, quantity fields, and calculated fields to show informational totals. These totals do not charge the respondent or collect card details. ### Should I collect card numbers in form fields? No. Do not collect credit card numbers, bank account numbers, or payment credentials in ordinary form fields. ## Integrations ### What third-party integrations are supported? Mobyform supports 22+ platform integrations including Google Sheets, Notion, Slack, Airtable, Mailchimp, HubSpot, Zapier, Make, and more. See [Integrations](/docs/integrations). ### How do I configure a Webhook? Go to the form's "Integrations" page, select Webhook, enter your target URL and trigger events, then save. You'll receive HTTP push notifications when form events occur. ### How do I use the API? Pro and above plans include API access. Generate an API key in "Settings" → "Developer", then use the RESTful API to manage forms and data. See [API](/docs/advanced/api). ## Other ### Are forms mobile-friendly? Yes. All Mobyform forms are automatically responsive on mobile devices — no extra setup needed. You can also switch to mobile preview in the editor. ### What languages are supported? The Mobyform interface is available in Chinese and English. Form content can be written in any language. ### How is data security handled? Mobyform uses multiple layers of security: * HTTPS encrypted transmission * Encrypted data storage * GDPR controls * Permission controls and audit logs * Cookie consent management ### How do I contact support? You can reach us through: * Email support * Live chat * Help documentation ### Is there a free plan? Yes. Mobyform offers a free plan with basic form creation and data collection features. For advanced features (custom domains, branding removal, API access, etc.), upgrade to Pro or Business. --- # Field Types (https://mobyform.com/en/docs/field-types) ## Field Types Overview Mobyform provides a rich set of field types organized by category. ## Basic Input ### Single-Line Text The most common field for collecting short text. * Placeholder support * Min/max length validation * Regex pattern validation * Default value support ### Multi-Line Text For collecting longer text like feedback or descriptions. * Configurable row count * Max character limit * Rich text editing mode ### Number Numeric-only input that filters non-numeric characters. * Min/max value range * Decimal precision * Step increment ### Currency Numeric input with currency symbol formatting. * Multiple currency types * Auto-formatted display ### Phone Phone number input with international format support. ### Scan Input Scan QR codes or barcodes to auto-fill data. ## Selection Fields ### Radio Choose one answer from multiple options. * Vertical/horizontal layout * "Other" option support * Logic jump on selection ### Checkbox Choose one or more answers from multiple options. * Min/max selection limits * "Select All" action * "Other" option support ### Dropdown Single-select dropdown menu for scenarios with many options. ### Multi-Select Dropdown Multi-select dropdown menu. ### Cascader Multi-level linked dropdown menus (e.g., Country > State > City). * Custom cascading data * Multi-level hierarchy ### Image Select Display options as images for selection. * Single/multi-select modes * Configurable image size ### Table Select Display options in table format. ### Product Select For selecting products or catalog items. ## Date & Time ### Date Picker Select a single date. * Multiple date formats * Selectable date range limits ### DateTime Picker Select both date and time. ### Date Range Select start and end dates. ### Time Picker Select time only. ### Reservation Date Date picker for booking scenarios. * Configurable available date ranges * Exclude specific dates ### Reservation Time Slot Select a time slot for reservations. * Configurable slot intervals * Capacity limits per slot ## Rating & Scale ### Star Rating Star-based rating field. * Configurable star count (default 5) * Half-star support * Custom icon support ### Slider Numeric slider for range selection. * Min/max value * Step increment * Scale label support ### NPS Score Net Promoter Score rating (0-10). ### Switch Boolean yes/no toggle. ## Matrix Fields ### Matrix Fill-In Row-column text input structure. * Custom row and column headers * Independent cell input ### Matrix Select Row-column single/multi-select structure. * Independent selection per row * Single/multi-select modes ### Matrix Scale Row-column rating scale structure. ### Matrix Dropdown Row-column dropdown structure. ### Matrix Slider Row-column slider rating structure. ### Horizontal Fill-In Horizontally arranged input fields. ## File & Media ### Image Upload Upload one or more images. * Format restrictions (JPG, PNG, etc.) * File size limits * Upload count limits * Image preview ### File Upload Upload any type of file. * Format restrictions * File size limits * Multi-file upload ### Signature Handwriting signature pad for e-signatures. * Touch-screen drawing * Clear and re-sign * Auto-saved as image ## Location ### Province/City Selector China administrative region picker (Province/City/District). ### Map Location Map-based location picker. * Address search * Drag to locate * Auto latitude/longitude ### Map Navigation Display location with navigation support. ## Verification & Security ### Phone Verification Send SMS code to verify phone number. ### Verification Code Custom verification code field. ### Confirmation Code Barcode/confirmation code field. ### reCAPTCHA Google reCAPTCHA bot protection. ### Face Recognition Identity verification through facial recognition. ## Display Components ### Headings Level 1/2/3 headings and rich text headings. ### Description Text Display-only explanatory text. ### Divider Visual separator between form sections. ### Image Display Embed images within the form. ### Image Carousel Multiple image slideshow. ### Video Player Embed video player. ### Audio Player Embed audio player. ### PDF Viewer Embed PDF document viewer. ### Iframe Embed Embed external webpages via iframe. ### Scrolling Text Scrolling text display. ### Marquee Ticker-style text display. ### Countdown Countdown timer component. ### Contact Us Preset contact information display. ### Hyperlink Clickable link component. ## Special Fields ### Sub-Form Nested form for collecting repeatable data groups. * Dynamically add/remove rows * Multiple sub-fields per row ### Pagination Split the form into multiple pages. ### Calculated Field Auto-calculate values based on formulas. * Arithmetic operations * Reference other field values * Conditional calculations ### Random Number Auto-generate random numbers. ### Sort/Ranking Drag-to-sort ranking component. ### Privacy Consent Privacy policy confirmation checkbox. ### Cover Form cover/header image component. ### OCR Recognition Optical character recognition supporting: * General text recognition * ID card scanning * Bank card recognition * Business license scanning ## Common Field Properties All fields support these universal settings: | Property | Description | | ----------------- | ----------------------------------------- | | **Label** | Field display name | | **Placeholder** | Input hint text | | **Default Value** | Preset value (fixed, dynamic, or formula) | | **Required** | Whether the field is required | | **Read-Only** | Whether the field is non-editable | | **Hidden** | Whether the field is hidden by default | | **Help Text** | Supplementary text below the field | | **Column Span** | Grid columns the field occupies | ## Next Steps * [Conditional Logic](/docs/form-logic) — Dynamically control form behavior based on values * [Form Settings](/docs/form-settings) — Configure submission, notification, and form-level settings --- # Form Editor (https://mobyform.com/en/docs/form-editor) ## Editor Overview The Mobyform visual editor uses drag-and-drop design, letting you build professional forms without writing code. ## Editor Layout The editor interface has three main areas: ### Left Panel — Field List The left panel shows all available field components, grouped by category: * **Basic Fields** — Text input, number, radio, checkbox, etc. * **Advanced Fields** — Matrix, rating, signature, map, etc. * **Layout Components** — Pagination, divider, heading, description * **Special Components** — File upload, phone verification, OCR Drag fields from the left panel onto the canvas to add them. ### Center Area — Form Canvas The canvas is a WYSIWYG editing area: * Drag fields to reorder them * Click a field to select and edit it * Multi-column layout support * Real-time form preview ### Right Panel — Property Configuration When a field is selected, the right panel shows its settings: * **Basic Properties** — Label, placeholder, default value * **Validation Rules** — Required, format, length limits * **Appearance** — Column width, label position * **Advanced Options** — Conditional logic, formulas ## Core Operations ### Adding Fields * **Drag to Add** — Drag from the left panel to a specific position * **Click to Add** — Click a field to append it to the end * **Duplicate** — Select a field and click the "Copy" button ### Sorting and Layout * **Drag to Sort** — Drag fields up or down to reorder * **Multi-Column Layout** — Adjust field column span for side-by-side layout * **Grid Gutter** — Set column gap spacing ### Editing Fields 1. Click a field on the canvas to select it 2. Modify properties in the right panel 3. Changes reflect on the canvas in real time ### Deleting Fields * Select a field and click the "Delete" button * Deleted fields go to the recycle bin for recovery ### Keyboard Shortcuts | Shortcut | Action | | -------- | ------------ | | `Ctrl+Z` | Undo | | `Ctrl+Y` | Redo | | `Ctrl+C` | Copy field | | `Ctrl+V` | Paste field | | `Ctrl+X` | Cut field | | `Delete` | Delete field | ## Form Configuration ### Basic Settings * **Form Title** — Set the form name * **Form Description** — Add a description * **Form Size** — Small / Default / Large * **Label Position** — Top / Left / Right * **Label Width** — Custom label width * **Show Numbering** — Auto-number fields * **Show Required Asterisk** — Mark required fields with \* ### Button Settings * Customize submit button text * Show/hide reset button * Button alignment (Left / Center / Right) ### Theme Tab Use the **Theme** tab to control the form's visual experience: * Design the current form with colors, fonts, input styles, button styles, cover page, logo, footer, watermark, and custom CSS. * Browse the theme library by **All**, **Mine**, or **Public** themes. * Search themes by theme name or category. * Apply a theme after confirming that only visual styling will be replaced. * Save the current styling as **My Theme** for reuse on other forms. ### Pagination Use the "Pagination" component to split long forms into multiple pages: * Independent validation per page * Previous/Next navigation * "One question per page" mode available ## Preview The editor offers multiple preview modes: * **Desktop Preview** — See the desktop layout * **Mobile Preview** — See the mobile layout * **Live Preview** — See changes as you edit ## Recycle Bin Accidentally deleted fields can be recovered: 1. Click the "Recycle Bin" icon in the editor toolbar 2. View the list of deleted fields 3. Click "Restore" to add the field back ## Next Steps * [Field Types](/docs/field-types) — Learn about each field type * [Conditional Logic](/docs/form-logic) — Set up show/hide logic * [Theme Customization](/docs/theme) — Customize form appearance * [Templates](/docs/templates) - Create forms from reusable templates --- # Conditional Logic (https://mobyform.com/en/docs/form-logic) ## Conditional Logic Conditional logic makes your forms smart — automatically showing, hiding, enabling, or disabling fields based on user responses. ## Logic Types ### Show/Hide Control field visibility based on conditions. **Example**: When "Do you have work experience?" is "Yes", show the "Years of Experience" field. ### Enable/Disable Control whether a field is interactive based on conditions. ### Required/Optional Dynamically toggle a field's required status based on conditions. **Example**: When "Contact Method" is "Email", make "Email Address" required. ### Jump Logic Jump to different form pages based on selected answers. **Example**: When "Satisfaction Score" is below 3, jump to the "Improvement Suggestions" page. ## Configuring Logic ### Open the Logic Editor 1. Click the **"Logic"** tab in the editor top menu 2. Or click "Add Logic" in the field property panel ### Create a Logic Rule 1. Click **"Add Logic"** 2. Select the **target field** (the field to control) 3. Choose the **action type** (Show / Hide / Enable / Disable / Required) 4. Add **trigger conditions** ### Condition Operators | Operator | Description | Field Types | | -------------------- | --------------------------- | ------------ | | **Equals** | Exact value match | All types | | **Not Equals** | Value doesn't match | All types | | **Greater Than** | Numeric comparison | Number, Date | | **Greater or Equal** | Numeric comparison | Number, Date | | **Less Than** | Numeric comparison | Number, Date | | **Less or Equal** | Numeric comparison | Number, Date | | **Contains** | Text contains string | Text types | | **Not Contains** | Text doesn't contain string | Text types | | **Is Empty** | Field has no value | All types | | **Is Not Empty** | Field has a value | All types | ### Combining Conditions * **AND** — All conditions must be true to trigger * **OR** — Any condition being true triggers the action ### Multi-Condition Example ``` When [All/Any] of the following conditions are met, [Show] field "Detailed Address": Condition 1: "Country" equals "United States" AND Condition 2: "City" is not empty ``` ## Limits | Limit | Count | | -------------------------- | ----- | | Max logic rules per form | 200 | | Max triggers per rule | 100 | | Max conditions per trigger | 100 | ## Best Practices * **Plan before configuring** — Sketch the form flow before adding logic * **Keep it simple** — Avoid overly complex nested logic * **Test thoroughly** — Use preview mode to test all branches * **Use clear labels** — Name fields meaningfully to identify logic relationships ## Next Steps * [Form Settings](/docs/form-settings) — Configure submission behavior and notifications * [Publishing](/docs/publishing) — Publish and share your form --- # Form Settings (https://mobyform.com/en/docs/form-settings) ## Form Settings The settings page gives you full control over form behavior, covering submissions, notifications, collaboration, and more. ## Submission Settings ### Post-Submission Actions * **Show Thank-You Message** — Customize the success message text * **Redirect URL** — Auto-redirect to a URL after submission * **Allow Re-submission** — Let users submit again * **Show Submission Result** — Let users view their submitted data ### Submission Limits * **Deadline** — Set a date to stop accepting submissions * **Max Submissions** — Limit total submission count * **Per-User Limit** — Limit submissions per user * **Stay Time** — Set minimum/maximum fill time ### Save as Draft When enabled, users can save their progress and return later to complete the form. ## Fill Settings ### Access Control * **Public Access** — Anyone can fill the form * **Password Protection** — Require a password to access * **Whitelist** — Only whitelisted users can fill * **Login Required** — Users must be signed in ### Fill Behavior * **Auto-Advance** — Auto-jump to next question after selecting an answer * **One Question Per Page** — Show only one question per page * **Field Pre-fill** — Pre-fill fields via URL parameters ## Notification Settings ### New Submission Notifications Get notified when new data is submitted: * **Email Notification** — Send email to specified addresses * **WeChat Notification** — Send WeChat message alerts ### Notification Triggers | Trigger Type | Description | | ---------------------- | ----------------------------------- | | **New Submission** | Notify on every new submission | | **Data Modified** | Notify when data is modified | | **Scheduled** | Send summary at scheduled time | | **Date Field Trigger** | Notify when form date field matches | ### Notification Recipients * Specify email addresses to receive notifications * Multiple recipients supported ## Reply Settings ### Data Replies When enabled, users can reply to and comment on submissions. * Text reply support * Reply notifications ### Data Modification Allow users to modify their submitted data. ## Sharing Settings * **Custom Share Title** — Set the title shown when sharing the link * **Custom Share Description** — Set the description for shared links * **Custom Share Image** — Set the cover image for shared links ## Watermark Add watermarks to prevent screenshot distribution: * **Text Watermark** — Custom watermark text * **Username Watermark** — Auto-display the respondent's username ## Next Steps * [Theme Customization](/docs/theme) — Customize form visual style * [Publishing](/docs/publishing) — Publish and share your form --- # Getting Started (https://mobyform.com/en/docs) ## Welcome to Mobyform Mobyform is a powerful online form builder that helps you create surveys, quizzes, registrations, marketing forms, and more. No coding required - design your forms with drag-and-drop. ## Key Features * **Visual Editor** - Drag-and-drop form design with 85+ field types * **Conditional Logic** - Dynamically show or hide fields based on answers * **Multiple Form Types** - Standard forms, exams, and marketing forms * **Data Management** - View, filter, and export submissions in real time * **Theme Customization** - Custom colors, fonts, backgrounds, and branding * **Team Collaboration** - Invite team members with role-based permissions * **Integrations** - Webhook, Google Sheets, Slack, and 22+ platforms * **Order Forms** - Capture product choices, quantities, and service request details ## Quick Start ### 1. Sign Up Visit the Mobyform website and click "Sign Up". We will redirect you to the Mobyform application at `build.mobyform.com`, where you can complete registration with the sign-in methods available in your workspace. ### 2. Create a Form After logging in to the Mobyform application, click "New Form" in your workspace: * **Blank Form** - Start from scratch * **From Template** - Choose from the template library * **Question Bank** - Build forms from reusable questions where available ### 3. Design Your Form Use the visual editor to drag fields from the left panel onto the canvas: * Configure field properties such as labels, placeholders, and validation rules * Set up conditional logic to show or hide fields based on answers * Choose a theme style for your form ### 4. Publish Once your form is ready, click "Publish": * Get a shareable link or QR code * Embed the form in your website * Set access permissions and submission limits ### 5. Collect Data Start collecting responses: * View all submissions in the "Data" tab * Use filters and search to find specific entries * Export data as Excel or CSV * View charts and analytics ## Next Steps * [Create a Form](/docs/create-form) - Learn about form creation options * [Form Editor](/docs/form-editor) - Master the editor interface * [Field Types](/docs/field-types) - Browse all available field types --- # Integrations (https://mobyform.com/en/docs/integrations) ## Integrations Mobyform supports 22+ third-party platform integrations to automatically route form data into your tools. ## Overview Click the **"Integrations"** tab in the form editor to view and configure all available integrations. ## Supported Platforms ### Data Storage | Platform | Description | | ----------------- | -------------------------------------- | | **Google Sheets** | Auto-sync submissions to Google Sheets | | **Notion** | Push data to Notion databases | | **Airtable** | Sync data to Airtable tables | | **Excel** | Export data to Excel files | | **Google Drive** | Save file attachments to Google Drive | | **Dropbox** | Save file attachments to Dropbox | ### Notifications & Messaging | Platform | Description | | --------- | ------------------------------------------- | | **Slack** | Send Slack notifications on new submissions | | **SMS** | Send SMS notifications | ### Marketing & CRM | Platform | Description | | ------------------ | -------------------------------- | | **Mailchimp** | Auto-add contacts to email lists | | **HubSpot** | Sync contacts to HubSpot CRM | | **ActiveCampaign** | Sync to ActiveCampaign | | **Salesforce** | Sync data to Salesforce | ### Project Management | Platform | Description | | ---------- | ------------------------ | | **Trello** | Auto-create Trello cards | | **Asana** | Auto-create Asana tasks | | **Coda** | Sync data to Coda docs | ### Automation | Platform | Description | | ------------- | ---------------------------------------- | | **Zapier** | Connect to 5000+ apps via Zapier | | **Make** | Build automations with Make (Integromat) | | **Pipedream** | Build data pipelines with Pipedream | ### Analytics & Tracking | Platform | Description | | -------------------- | --------------------------------------- | | **Google Analytics** | Track form visits and submission events | | **Facebook Pixel** | Meta ad conversion tracking | ### Document Generation | Platform | Description | | ------------- | -------------------------------------------- | | **PDFMonkey** | Auto-generate PDF documents from submissions | ### Calendar | Platform | Description | | ------------------- | --------------------------- | | **Google Calendar** | Auto-create calendar events | ## Webhooks ### What are Webhooks Webhooks let you send HTTP requests to a specified URL when form events occur, enabling custom data push. ### Configure a Webhook 1. Go to form **"Integrations"** → **"Webhook"** 2. Enter the target URL 3. Select trigger events 4. Configure request headers (optional) 5. Save ### Trigger Events | Event | Description | | ---------------------- | -------------------------------- | | **form\_data\_add** | Triggered on new data submission | | **form\_data\_update** | Triggered when data is modified | | **form\_data\_delete** | Triggered when data is deleted | ### Webhook Status * **Pending** — Awaiting delivery * **Success** — Successfully delivered * **Failed** — Delivery failed (retryable) ### Integration Logs View execution logs for all integrations to troubleshoot issues. ## Field Mapping Configure field mapping for each integration: 1. Select a form field 2. Map to the corresponding field on the target platform 3. Set data transformation rules (optional) ## PDF Export Export form submissions as PDF documents: * Use built-in PDF templates * Custom PDF layout * Batch PDF generation ## Next Steps * [Advanced Features](/docs/advanced) — Explore more advanced capabilities * [Order Forms](/docs/payment) - Capture order details for downstream workflows --- # Order Forms (https://mobyform.com/en/docs/payment) ## Order Forms Mobyform can capture order details, product selections, quantities, registration choices, and follow-up information in a form. Payment collection inside Mobyform forms is not currently available. ## What You Can Build * Product inquiry forms * Service request forms * Event registration forms * Quote request forms * Internal purchase request forms ## Order Form Fields Common order forms include: * **Contact details** - Name, email, phone, company, or shipping details * **Item choices** - Radio buttons, checkboxes, dropdowns, or product-style selection fields * **Quantities** - Number fields with validation rules * **Notes** - Multi-line text for special requests * **Confirmation code** - A field or generated value for follow-up workflows ## Calculated Totals If an order needs a total for review or offline follow-up, use calculated fields: 1. Add item or service selection fields. 2. Add quantity fields where needed. 3. Add a calculated field that combines the selected values. 4. Review the formula in preview before publishing. Calculated totals are informational. They do not charge the respondent or collect card details. ## Submission Workflow After submission, you can: * show a confirmation page * send an email notification * export submissions to Excel or CSV * push data to downstream systems with Webhooks, Notion, Zapier, Make, or API workflows where available ## Payment Handling Mobyform does not currently process payments inside forms. If your workflow requires payment, collect the order details in Mobyform and complete payment in your existing billing, invoice, or checkout system outside the form. Avoid asking respondents to enter credit card numbers, bank account numbers, or other payment credentials into ordinary form fields. ## Data Review Use the data management page to review order submissions: * Submission status * Item selections and quantities * Contact details * Exported records * Follow-up notes ## Security * Use HTTPS links for published forms * Collect only the order data you need * Use role-based permissions for team access * Mark sensitive fields where appropriate * Keep payment credentials out of form responses ## Next Steps * [Integrations](/docs/integrations) - Send order data to downstream tools * [Form Settings](/docs/form-settings) - Configure form behavior --- # Publishing & Sharing (https://mobyform.com/en/docs/publishing) ## Publishing Your Form Once your form is ready, click **"Publish"** to make it live. ## Publishing Methods ### Public Link Generate a unique form link — anyone with the link can fill it out. * Copy and share the link directly * Link format: `https://your-domain.com/s/form-key` ### QR Code Auto-generate a QR code for mobile access. * Download the QR code image * Customizable QR code styling ### Embed in Website Embed the form into your website or application. * **iframe Embed** — Copy iframe code to embed in a webpage * **Popup Embed** — Open form in a popup on button click ### Targeted Publishing Control who can access and fill the form. * Set permission groups * Specify allowed users / departments / roles ### Public Query Publish a data query entry point, allowing users to view submitted data. * Link format: `https://your-domain.com/q/form-key` * Configurable query permissions ## Access Control ### Password Protection Set a password — users must enter the correct password to view the form. ### IP Restriction Limit access to specific IP address ranges. ### Whitelist Only allow whitelisted users to fill the form. ### Login Required Require users to sign in before filling the form. ### Time Limit Set open and close times for the form. ## Share Settings ### Custom Share Info Information displayed when sharing on social media: * **Share Title** — Link preview title * **Share Description** — Link preview description * **Share Image** — Link preview cover image ### Share Channels * Copy link * Email sharing * Social media sharing * QR code sharing ## Notification Sharing Send notifications inviting users to fill the form. ## Data Helper Configure the data helper feature to assist users during form filling. ## Form Status Management | Action | Description | | ----------- | ---------------------------------------------- | | **Publish** | Form goes live, starts accepting submissions | | **Pause** | Temporarily stop accepting submissions | | **Resume** | Re-open submissions | | **Close** | Archive the form, permanently stop submissions | ## Next Steps * [Data Management](/docs/data-management) — View and manage collected data * [Form Settings](/docs/form-settings) — Adjust form configuration --- # Templates (https://mobyform.com/en/docs/templates) ## Templates Templates help you create forms from proven structures instead of starting from a blank canvas. A template can carry fields, layout, logic, and styling into a new editable form. ## Public Template Gallery The public template gallery contains templates that are available to your workspace. ### Browse Templates 1. Click **New Form** and open **Template Library**. 2. Browse public categories or search by template name. 3. Open a template preview to inspect the form before using it. 4. Click **Use** to create a new form from the template. The new form is created in the current workspace context and opens in the editor for customization. ### Template Cards Each template card can show: * Cover image or fallback preview * Category badge * Template name * Preview action * Use action with a loading state while the form is created ## Create from a Template After you use a template, the result is a normal editable form. You can: * Add, remove, duplicate, or reorder fields. * Change field labels, options, validation, and logic. * Adjust the theme and form settings. * Publish the form when it is ready. Using a template does not lock the form. It gives you a faster starting point. ## Save as Template Save a form as a template when you want to reuse its structure later. 1. Open the form actions menu from form management. 2. Choose **Save as Template**. 3. Upload an optional cover image. 4. Enter a template name. 5. Add an optional description. 6. Choose a category or keep it uncategorized. 7. Decide whether the template is private or public. 8. Save. Cover images support PNG, JPG, and JPEG files up to 5 MB. They are recommended because they make template cards easier to scan. ## Public vs Private Templates Mobyform separates public reusable templates from your own personal templates. * **Private templates** stay in your personal template library. * **Public templates** are saved with public ownership and can only use public categories. * **Personal categories** can be created while saving a private template. * If you switch a template to public while a personal category is selected, the category is reset to uncategorized. This rule keeps public template organization clean and prevents private categories from appearing in shared template galleries. ## My Templates Use **My Templates** to manage templates you saved for yourself. You can: * Search your templates by name. * Preview a saved template. * Create a new form from a personal template. * Delete a template you no longer need. When a form is created from a personal template, it uses the current workspace context and opens in the editor. ## Template Categories Categories make large template libraries easier to browse. * The public gallery shows public categories. * Private templates can use public categories, personal categories, or uncategorized. * Public templates can use public categories or uncategorized only. * Users with management permission can create, edit, and delete public template categories. ## Import and Export Template-related workflows may also include JSON export or import when you need to move form configuration between environments. Use this carefully, and review the imported form before publishing it. ## Next Steps * [Create a Form](/docs/create-form) - Learn every form creation path * [How to Save a Form Template](/docs/guides/save-form-template) - Turn a form into a reusable template * [Theme Customization](/docs/theme) - Save the visual design as a reusable theme * [Collaboration](/docs/collaboration) - Work with your team --- # Theme Customization (https://mobyform.com/en/docs/theme) ## Theme Customization Mobyform gives you two connected theme workflows: * Use the **Theme Designer** to style the form you are editing. * Use the **Theme Library** to apply saved public or personal themes. Applying a theme replaces visual styling only. It does not change fields, logic rules, publish settings, or collected data. ## Theme Designer Open the **Theme** tab in the form editor to adjust the current form. ### Visual Styling * **Color scheme** - Theme color, page background, content background, question text, and answer text. * **Contrast guard** - Low contrast text is detected, with a quick fix to restore readability. * **Font system** - Question and answer font sizes, plus a font picker for custom fonts. * **Visual effects** - Input grayscale, input style, and button style presets. ### Content Display * Show or hide the form title, description, and form number. * Preview the form language used by built-in field text. * Switch text direction between LTR and RTL for multilingual forms. ### Layout Structure * **Cover page** - Enable a color or image cover, add rich cover content, and choose whether respondents open the form with a button or by scrolling. * **Header** - Add a logo, set logo alignment, add a header decoration image, and choose a form layout. * **Footer and submit button** - Show or hide the submit button, edit button text, size, radius, color, spacing, and alignment. * **Bottom description** - Add supporting footer text when the form needs extra context. * **Powered by** - Hide Mobyform branding when your plan allows it. ### Advanced Settings * Show respondent information at the top of the form when the form requires signed-in users. * Add a text watermark or include the respondent username in the watermark. * Upload a CSS file or paste custom CSS for precise control. * Use the built-in CSS reference for selectors such as `.mobyform-form`, `.mobyform-field`, `.mobyform-cover`, `.mobyform-button`, `.mobyform-input`, and field-type selectors. Custom fonts and advanced custom theme controls may require a paid plan. ## Theme Library Use the theme library when you want to reuse an existing style instead of rebuilding it manually. ### Browse Themes 1. Open the form editor. 2. Go to **Theme**. 3. Open the theme library panel. 4. Browse **All**, **Mine**, or **Public** themes. 5. Filter by category or search by theme name or category name. Only reusable themes with real theme configuration appear in the library. Empty placeholder themes are hidden. ### Apply a Theme 1. Select a theme card. 2. Review the preview, source badge, and category. 3. Click **Apply**. 4. Confirm the change. The confirmation step is important: applying a theme updates the form's visual styling, but leaves form content and behavior intact. ## Save as My Theme Save the current form styling when you want to reuse it later. 1. Style the form in the Theme Designer. 2. Open the theme library panel. 3. Choose **Save as My Theme**. 4. Enter a theme name. 5. Choose a category or leave it uncategorized. 6. Save. Theme names are required and can be up to 120 characters. You can also create a new personal category while saving. The save dialog shows a preview card based on the current colors and layout. ## Theme Categories Theme categories help keep reusable styles organized. * **Public categories** are shared categories managed by users with the right permissions. * **Personal categories** belong to your account and help organize your own themes. * **Uncategorized** is available when a theme does not need a category. Users with theme management permission can create, edit, and delete public themes and public theme categories from the management pages. ## Safety Notes * Theme preview images must use safe image URLs. HTTP, HTTPS, and blob URLs are supported. * Unsafe image protocols and invalid CSS color values are ignored in theme previews. * Custom CSS can affect the public form experience. Test desktop and mobile previews before publishing. ## Next Steps * [Form Editor](/docs/form-editor) - Learn where the Theme tab fits in the editor * [How to Reuse a Theme](/docs/guides/reuse-theme) - Save and apply a reusable form theme * [Publishing](/docs/publishing) — Publish and share your form * [Form Settings](/docs/form-settings) - Configure form behavior --- # AI Roadmap (https://mobyform.com/en/docs/advanced/ai) ## AI Roadmap AI-assisted form generation is on the Mobyform roadmap, but it is not currently available as a shipped self-serve feature. This page explains the direction so teams can evaluate upcoming capabilities without treating them as live product commitments. ## Planned Capabilities The planned AI workflow is expected to help with: * generating a first draft form from a plain-language description * suggesting field types for common data-collection patterns * drafting clearer labels, placeholders, and helper text * proposing option lists for choice-based fields * helping teams refine long or unclear questions ## Expected Workflow When available, the AI creation flow should still keep the human editor in control: 1. Describe the form you want to build. 2. Review the generated draft. 3. Adjust fields, labels, validation, and logic in the visual editor. 4. Preview the form before publishing. AI-generated drafts may require manual review for business rules, legal wording, accessibility, and sensitive data handling. ## Availability AI form generation is not currently a guaranteed plan entitlement. Contact the team if you want to discuss the roadmap, beta access, or whether the upcoming AI workflow fits your use case. ## Next Steps * [Form Editor](/docs/form-editor) - Learn the editor used to refine forms * [Field Types](/docs/field-types) - Explore available field components --- # API (https://mobyform.com/en/docs/advanced/api) ## API Mobyform provides a RESTful API for developers to programmatically manage forms, read data, and build custom integrations. > Requires Pro plan or above ## Authentication ### API Keys 1. Go to **"Settings"** → **"Developer"** 2. Click **"Generate API Key"** 3. Copy and securely store the key ### Usage Include the API key in request headers: ``` Authorization: Bearer YOUR_API_KEY ``` ### Key Management * Create multiple API keys * Set permission scopes per key * Revoke keys at any time * View key usage ## Main APIs ### Form Management | Endpoint | Method | Description | | ----------------- | ------ | ---------------- | | `/api/forms` | GET | List forms | | `/api/forms/:key` | GET | Get form details | | `/api/forms` | POST | Create a form | | `/api/forms/:key` | PUT | Update a form | | `/api/forms/:key` | DELETE | Delete a form | ### Form Data | Endpoint | Method | Description | | -------------------------- | ------ | ---------------------- | | `/api/forms/:key/data` | GET | List submission data | | `/api/forms/:key/data/:id` | GET | Get single submission | | `/api/forms/:key/data` | POST | Add submission data | | `/api/forms/:key/data/:id` | PUT | Update submission data | | `/api/forms/:key/data/:id` | DELETE | Delete submission data | ### Query Parameters | Parameter | Type | Description | | --------- | ------ | ------------------------- | | `page` | number | Page number | | `size` | number | Items per page | | `sort` | string | Sort field | | `order` | string | Sort direction (asc/desc) | | `filter` | object | Filter conditions | ## Webhooks ### Configure Webhooks Set up webhooks via API or the management panel: ```json { "url": "https://your-server.com/webhook", "events": ["form_data_add", "form_data_update", "form_data_delete"], "headers": { "X-Custom-Header": "value" } } ``` ### Webhook Events | Event | Trigger | | ------------------ | ------------------ | | `form_data_add` | New data submitted | | `form_data_update` | Data modified | | `form_data_delete` | Data deleted | ### Webhook Payload ```json { "event": "form_data_add", "formKey": "abc123", "data": { "id": "data_001", "fields": { "name": "John Doe", "email": "john@example.com" }, "createdAt": "2024-01-15T10:30:00Z" } } ``` ### Verifying Webhooks Verify webhook request authenticity to ensure it comes from Mobyform: * Check the request source IP * Validate signature headers (if configured) ## Rate Limits API requests are protected by rate limits: | Plan | Limit | | -------------- | --------------------- | | **Pro** | 1,000 requests/month | | **Business** | 10,000 requests/month | | **Enterprise** | Custom | Exceeding the limit returns `429 Too Many Requests`. ## Error Handling ### HTTP Status Codes | Code | Description | | ----- | ------------------------------------ | | `200` | Success | | `201` | Created | | `400` | Bad request parameters | | `401` | Unauthorized (invalid API key) | | `403` | Forbidden (insufficient permissions) | | `404` | Resource not found | | `429` | Too many requests | | `500` | Internal server error | ### Error Response Format ```json { "error": { "code": "INVALID_REQUEST", "message": "Description of the error" } } ``` ## Code Examples ### cURL — List Forms ```bash # List all forms with pagination curl -X GET "https://api.mobyform.com/api/forms?page=1&size=10" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" ``` ### JavaScript/Node.js — Get Form Data ```javascript // Fetch submission data for a specific form const response = await fetch( 'https://api.mobyform.com/api/forms/abc123/data?page=1&size=20', { method: 'GET', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, } ); const result = await response.json(); console.log(`Total submissions: ${result.total}`); console.log('Data:', result.data); ``` ### Python — Create a Form Submission ```python import requests # Submit data to a form url = "https://api.mobyform.com/api/forms/abc123/data" headers = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json", } payload = { "fields": { "name": "Jane Smith", "email": "jane@example.com", "feedback": "Great product!" } } response = requests.post(url, json=payload, headers=headers) print(f"Status: {response.status_code}") print(f"Created: {response.json()}") ``` ## Pagination All list endpoints support pagination through `page` and `size` query parameters. * `page` — The page number to retrieve (starts from 1) * `size` — Number of items per page (default: 20, max: 100) **Example Request:** ``` GET /api/forms?page=2&size=10 ``` **Example Response:** ```json { "data": [...], "total": 56, "page": 2, "size": 10, "totalPages": 6 } ``` > If no pagination parameters are provided, the API defaults to `page=1` and `size=20`. ## Error Codes The API uses structured error codes in the response body to help you handle errors programmatically: | Code | Name | Description | | ----------------------- | --------------------- | ---------------------------------------------------------- | | `INVALID_REQUEST` | Invalid Request | The request body or parameters are malformed | | `AUTHENTICATION_FAILED` | Authentication Failed | The API key is missing, invalid, or expired | | `PERMISSION_DENIED` | Permission Denied | The API key does not have the required scope | | `RESOURCE_NOT_FOUND` | Resource Not Found | The requested form, submission, or resource does not exist | | `RATE_LIMITED` | Rate Limited | You have exceeded the allowed number of requests | | `VALIDATION_ERROR` | Validation Error | The submitted data failed field validation rules | | `INTERNAL_ERROR` | Internal Error | An unexpected server error occurred; try again later | ## Webhook Signature Verification When you configure a webhook secret, Mobyform signs every webhook payload using **HMAC-SHA256**. The signature is sent in the `X-Webhook-Signature` header. You should verify this signature to confirm the request is authentic. ### Node.js Verification ```javascript const crypto = require('crypto'); function verifyWebhookSignature(payload, signature, secret) { const expectedSignature = crypto .createHmac('sha256', secret) .update(payload, 'utf8') .digest('hex'); return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(expectedSignature) ); } // Usage in an Express handler app.post('/webhook', (req, res) => { const signature = req.headers['x-webhook-signature']; const rawBody = JSON.stringify(req.body); if (!verifyWebhookSignature(rawBody, signature, 'YOUR_WEBHOOK_SECRET')) { return res.status(401).send('Invalid signature'); } // Process the webhook event console.log('Verified event:', req.body.event); res.status(200).send('OK'); }); ``` ### Python Verification ```python import hmac import hashlib def verify_webhook_signature(payload: bytes, signature: str, secret: str) -> bool: expected = hmac.new( secret.encode('utf-8'), payload, hashlib.sha256 ).hexdigest() return hmac.compare_digest(expected, signature) # Usage in a Flask handler @app.route('/webhook', methods=['POST']) def handle_webhook(): signature = request.headers.get('X-Webhook-Signature', '') if not verify_webhook_signature(request.data, signature, 'YOUR_WEBHOOK_SECRET'): return 'Invalid signature', 401 event = request.json print(f"Verified event: {event['event']}") return 'OK', 200 ``` ## Best Practices * **Secure your keys** — Never expose API keys in frontend code * **Handle errors** — Implement proper error handling and retry logic * **Respect rate limits** — Control request frequency appropriately * **Use Webhooks** — Prefer webhooks for real-time notifications over polling ## Next Steps * [Custom Domain](/docs/advanced/custom-domain) — Configure your own domain * [Integrations](/docs/integrations) — Use built-in integrations without coding --- # Custom Domain (https://mobyform.com/en/docs/advanced/custom-domain) ## Custom Domain The custom domain feature lets you use your own domain (e.g., `forms.yourcompany.com`) to host forms, enhancing your brand professionalism. > Requires Pro plan or above ## Setting Up a Custom Domain ### Add a Domain 1. Go to **"Settings"** → **"Domains"** 2. Click **"Add Domain"** 3. Enter your domain (e.g., `forms.yourcompany.com`) ### DNS Configuration After adding the domain, configure a CNAME record at your DNS provider: | Record Type | Host | Value | | ----------- | ----- | --------------------------------------- | | CNAME | forms | Target address provided by the platform | ### Verify Domain 1. After DNS configuration, return to the domain settings page 2. Click **"Verify"** 3. System checks the DNS configuration 4. Domain becomes active after verification passes ### SSL Certificate After domain verification, the system automatically provisions an SSL certificate for HTTPS access. ## Using Your Custom Domain ### Form Links Once configured, form links use your custom domain: * Original: `https://build.mobyform.com/s/form-key` * Custom: `https://forms.yourcompany.com/s/form-key` ### Domain Assignment Assign different domains to different forms (if you've added multiple domains). ## Domain Management ### Domain Status | Status | Description | | ------------------------ | ------------------------ | | **Pending Verification** | DNS not yet verified | | **Active** | Domain is working | | **Verification Failed** | DNS configuration error | | **Disabled** | Domain has been disabled | ### Update Configuration * Update domain settings * Switch default domain * Re-verify DNS ### Remove a Domain Delete domains you no longer need: 1. Confirm no forms are using the domain 2. Click "Delete" in the domain list 3. Confirm deletion ## Domain Quota | Plan | Custom Domains | | -------------- | -------------- | | **Free** | Not supported | | **Pro** | 5 | | **Business** | Unlimited | | **Enterprise** | Unlimited | ## Notes * DNS propagation may take up to 48 hours * Ensure CNAME records correctly point to the platform address * Confirm no active forms use a domain before deleting it * SSL certificates auto-renew — no manual action needed ## Next Steps * [Theme Customization](/docs/theme) — Pair custom domains with branded styling * [Publishing](/docs/publishing) — Share forms using your custom domain --- # Dimension Evaluation (https://mobyform.com/en/docs/advanced/dimension) ## Dimension Evaluation The dimension evaluation feature lets you set up multiple evaluation dimensions for a form, assessing each submission from multiple angles and generating comprehensive analysis reports. ## Use Cases * **Talent Assessment** — Evaluate candidates across skills, communication, teamwork * **Course Evaluation** — Rate courses on content, instructor, organization * **Product Assessment** — Evaluate products on features, UX, value * **Performance Review** — Assess employees on output, attitude, innovation ## Configuring Dimensions ### Open the Dimension Editor 1. Click the **"Dimension"** tab in the form editor 2. Enter the dimension configuration page ### Create a Dimension 1. Click **"Add Dimension"** 2. Enter the dimension name (e.g., "Professional Skills") 3. Set the dimension weight (percentage) 4. Associate form fields with the dimension ### Dimension Weights Assign weights to each dimension — all weights must sum to 100%: | Dimension | Weight | | ------------------- | ------ | | Professional Skills | 40% | | Communication | 30% | | Teamwork | 30% | ### Scoring Standards Set scoring criteria and levels for each dimension: * **Score Range** — Score range for each dimension * **Grade Levels** — Excellent, Good, Average, Pass, Fail * **Evaluation Advice** — Evaluation text for each level ## Evaluation Results ### Auto Calculation The system auto-calculates results based on field values and dimension weights: * Per-dimension scores * Weighted total score * Grade assignment * Evaluation advice ### Result Reports Generate detailed evaluation reports: * **Radar Chart** — Multi-dimension score visualization * **Per-Dimension Analysis** — Detailed analysis for each dimension * **Overall Evaluation** — Comprehensive assessment conclusion * **Improvement Suggestions** — Suggestions based on weak dimensions ### Public Results Make the evaluation results page public for assessed individuals to view. ## Batch Evaluation View and compare dimension evaluation results across multiple submissions. ## Next Steps * [Lottery](/docs/advanced/lottery) — Learn about the lottery feature * [Data Management](/docs/data-management) — Manage evaluation data --- # GDPR Controls (https://mobyform.com/en/docs/advanced/gdpr) ## GDPR Controls Mobyform provides GDPR-oriented controls that help teams manage privacy notices, access, retention, data subject requests, and audit records. These controls support your compliance work, but they do not automatically make every form or organization GDPR compliant. ## Privacy Settings ### Form-Level Privacy Configure privacy options in form settings: * **Privacy Consent** — Add a privacy policy confirmation field * **Data Purpose Statement** — Inform users about data collection purposes * **Cookie Consent** — Cookie usage confirmation ### Sensitive Field Marking Mark fields containing sensitive information: * Personal identity information (name, ID number, etc.) * Contact information (email, phone number, etc.) * Financial information (bank card numbers, etc.) * Health information * Location information Marked sensitive fields receive additional access controls. ## Data Subject Rights ### Data Access Requests Users can request access to their personal data: 1. User submits a data access request 2. Admin reviews the request 3. Export the user's related data 4. Provide to the user ### Data Deletion Requests Users have the right to request deletion of their personal data: 1. User submits a deletion request 2. Admin reviews the request 3. Execute data deletion 4. Confirm deletion completion ### Data Rectification Users can request correction of inaccurate personal data. ### Data Restriction Users can request restriction of processing their data. ### Right to Object Users can object to specific data processing activities. ## Data Retention ### Retention Policies Set data retention periods: * **Permanent** — Data is never auto-deleted * **Custom Retention Period** — Auto-delete after the retention period * **Delete After Processing** — Delete data after processing is complete ### Auto Cleanup Configure auto-cleanup rules to delete expired data on schedule. ## Data Protection Impact Assessment (DPIA) Conduct impact assessments for high-risk data processing: * Assess necessity of data processing * Identify risks and impacts * Develop mitigation measures * Document assessment results ## Data Breach Management ### Breach Response Process for handling data breaches: 1. Record the breach event 2. Assess the impact scope 3. Notify affected users 4. Report to regulatory authorities (if required) 5. Implement remediation measures ### Breach Records Document all data breach events: * Breach and discovery time * Affected data types * Number of affected users * Measures taken ## Lawful Basis Set the lawful basis for data processing: | Type | Description | | ----------------------- | -------------------------------------- | | **Consent** | User explicitly consents to processing | | **Contract** | Processing to fulfill a contract | | **Legal Obligation** | Legally required processing | | **Legitimate Interest** | Based on legitimate business interests | | **Public Interest** | Processing in the public interest | | **Vital Interest** | Protecting user vital interests | ## Audit Logs Privacy-related actions are automatically logged: * Data access records * Data modification records * Deletion operation records * Permission change records * Export operation records ## Next Steps * [API](/docs/advanced/api) — Learn about the developer API * [Collaboration](/docs/collaboration) — Manage data access permissions --- # Advanced Features (https://mobyform.com/en/docs/advanced) ## Advanced Features Mobyform offers a suite of advanced features for enterprise and professional use cases. ## Feature Overview * [Dimension Evaluation](/docs/advanced/dimension) — Multi-dimensional assessment with weighted scoring and analysis * [Lottery](/docs/advanced/lottery) — Prize draw linked to form submissions * [GDPR Controls](/docs/advanced/gdpr) - Data privacy controls and management * [API](/docs/advanced/api) — Developer API and Webhooks * [Custom Domain](/docs/advanced/custom-domain) — Use your own domain name * [AI Roadmap](/docs/advanced/ai) - Planned AI-assisted form creation --- # Lottery (https://mobyform.com/en/docs/advanced/lottery) ## Lottery Mobyform's lottery feature lets you add prize draws to your forms. Users can participate in the lottery after submitting, boosting engagement. ## Use Cases * **Event Registration** — Register and enter the draw to boost participation * **Surveys** — Fill out a survey for a chance to win, improving response rates * **Marketing Campaigns** — Promotional draws to attract users * **User Feedback** — Reward feedback with prizes to encourage submissions ## Creating a Lottery ### Setup Steps 1. In the form publishing page, go to **"Lottery"** settings 2. Click **"Create Lottery Activity"** 3. Configure the activity and prizes ### Activity Settings * **Activity Name** — Lottery activity title * **Start Time** — Activity start date and time * **End Time** — Activity end date and time * **Participation Criteria** — Auto-enter after form submission ### Prize Setup Add one or more prizes: * **Prize Name** — Prize description * **Prize Quantity** — Total number of prizes available * **Win Probability** — Chance of winning per draw * **Prize Image** — Prize display image (optional) ## Lottery Flow 1. User fills out and submits the form 2. Lottery entry appears after successful submission 3. User clicks to participate 4. System randomly draws the result 5. Win or no-win notification is displayed ## Managing the Lottery ### View Winning Records View all winning records in the lottery management page: * Winner information * Prize won * Win time * Associated form submission ### Activity Status | Status | Description | | --------------- | ---------------------------------- | | **Not Started** | Activity hasn't reached start time | | **In Progress** | Activity is running | | **Ended** | Activity has ended | | **Closed** | Manually closed | ## Notes * Each form can have one lottery activity * The lottery is linked to form submissions — one entry per submission * The lottery auto-stops when prizes run out ## Anti-Abuse Settings Prevent fraudulent or excessive participation with built-in safeguards: * **IP-Based Participation Limits** — Restrict the number of lottery entries from the same IP address within a given time window to prevent automated abuse. * **Account Verification Requirements** — Require users to verify their email or phone number before they can participate in the draw. * **Time-Based Restrictions** — Set a cooldown period between participation attempts (e.g., one entry per 24 hours) to ensure fair access. * **Duplicate Submission Detection** — Automatically detect and block repeated form submissions from the same user or device. ## Analytics Track lottery performance and participation data from the analytics dashboard: * **Total Participants vs Winners** — See how many users entered the draw compared to the number of winners. * **Prize Distribution Overview** — View a breakdown of which prizes have been awarded and how many remain. * **Participation Trends Over Time** — Monitor daily or weekly participation rates to understand engagement patterns. * **Export Winner List** — Download a complete list of winners with their contact information and prize details for record-keeping or fulfillment. ## Integration with Other Features Combine the lottery with other Mobyform features for richer form experiences: * **GDPR Consent** — Pair the lottery with a GDPR consent field so users explicitly agree to data processing before entering the draw. * **Conditional Logic** — Use conditional logic rules to show the lottery only to respondents who meet specific criteria (e.g., selected a particular answer or belong to a target group). * **Webhook Notifications** — Trigger webhook events when a user wins a prize, enabling real-time notifications to external systems such as CRM tools, email platforms, or inventory management. ## Next Steps * [Integrations](/docs/integrations) — Connect external services to your forms * [Publishing](/docs/publishing) — Learn about publishing and sharing options --- # API Quick Start (https://mobyform.com/en/docs/guides/api-quickstart) ## API Quick Start This guide walks you through making your first Mobyform API call. In a few minutes, you will list your forms, create a new form, read submissions, and set up a webhook. > Requires Pro plan or above ## Step 1: Generate an API Key 1. Log in to Mobyform 2. Go to **"Settings"** → **"Developer"** 3. Click **"Generate API Key"** 4. Give the key a descriptive name (e.g., "Backend Integration") 5. Copy the key immediately — it will not be shown again Store your API key securely. Never expose it in frontend code, public repositories, or client-side applications. ## Step 2: Make Your First Request Use the API key to list your forms. All requests use the base URL `https://api.mobyform.com` and require the `Authorization` header. ### cURL ```bash curl -X GET https://api.mobyform.com/api/forms \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" ``` ### JavaScript / Node.js ```javascript const response = await fetch('https://api.mobyform.com/api/forms', { method: 'GET', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, }); const data = await response.json(); console.log(data); ``` ### Python ```python import requests response = requests.get( 'https://api.mobyform.com/api/forms', headers={ 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', } ) data = response.json() print(data) ``` ### Example Response ```json { "data": [ { "key": "abc123", "title": "Customer Feedback", "status": "published", "createdAt": "2024-06-01T08:00:00Z", "submissions": 142 }, { "key": "def456", "title": "Event Registration", "status": "draft", "createdAt": "2024-06-10T14:30:00Z", "submissions": 0 } ], "total": 2, "page": 1, "size": 20 } ``` ## Step 3: Create a Form via API Create a new form by sending a POST request with the form structure. ### cURL ```bash curl -X POST https://api.mobyform.com/api/forms \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "title": "Contact Form", "fields": [ { "type": "input", "label": "Full Name", "required": true }, { "type": "email", "label": "Email Address", "required": true }, { "type": "textarea", "label": "Message", "required": true, "placeholder": "How can we help you?" } ] }' ``` ### JavaScript / Node.js ```javascript const response = await fetch('https://api.mobyform.com/api/forms', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ title: 'Contact Form', fields: [ { type: 'input', label: 'Full Name', required: true }, { type: 'email', label: 'Email Address', required: true }, { type: 'textarea', label: 'Message', required: true, placeholder: 'How can we help you?' }, ], }), }); const form = await response.json(); console.log('Created form:', form.key); ``` ### Python ```python import requests import json response = requests.post( 'https://api.mobyform.com/api/forms', headers={ 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, data=json.dumps({ 'title': 'Contact Form', 'fields': [ {'type': 'input', 'label': 'Full Name', 'required': True}, {'type': 'email', 'label': 'Email Address', 'required': True}, {'type': 'textarea', 'label': 'Message', 'required': True, 'placeholder': 'How can we help you?'}, ], }) ) form = response.json() print('Created form:', form['key']) ``` ### Example Response ```json { "key": "ghi789", "title": "Contact Form", "status": "draft", "createdAt": "2024-06-15T10:00:00Z", "fields": [ { "id": "field_1", "type": "input", "label": "Full Name", "required": true }, { "id": "field_2", "type": "email", "label": "Email Address", "required": true }, { "id": "field_3", "type": "textarea", "label": "Message", "required": true } ] } ``` ## Step 4: Read Form Submissions Retrieve submissions for a specific form with pagination. ### cURL ```bash curl -X GET "https://api.mobyform.com/api/forms/abc123/data?page=1&size=10" \ -H "Authorization: Bearer YOUR_API_KEY" ``` ### JavaScript / Node.js ```javascript const formKey = 'abc123'; const response = await fetch( `https://api.mobyform.com/api/forms/${formKey}/data?page=1&size=10`, { headers: { 'Authorization': 'Bearer YOUR_API_KEY', }, } ); const submissions = await response.json(); console.log(`Total: ${submissions.total} submissions`); for (const item of submissions.data) { console.log(item.id, item.fields); } ``` ### Python ```python import requests form_key = 'abc123' response = requests.get( f'https://api.mobyform.com/api/forms/{form_key}/data', headers={'Authorization': 'Bearer YOUR_API_KEY'}, params={'page': 1, 'size': 10} ) submissions = response.json() print(f"Total: {submissions['total']} submissions") for item in submissions['data']: print(item['id'], item['fields']) ``` ### Example Response ```json { "data": [ { "id": "data_001", "fields": { "Full Name": "Jane Smith", "Email Address": "jane@example.com", "Message": "I have a question about pricing." }, "createdAt": "2024-06-15T12:00:00Z" } ], "total": 1, "page": 1, "size": 10 } ``` ### Pagination Parameters | Parameter | Type | Default | Description | | --------- | ------ | ----------- | -------------------------------- | | `page` | number | 1 | Page number | | `size` | number | 20 | Items per page (max 100) | | `sort` | string | `createdAt` | Field to sort by | | `order` | string | `desc` | Sort direction (`asc` or `desc`) | ## Step 5: Set Up a Webhook Webhooks notify your server in real time when form events occur, so you do not need to poll the API. ### Register a Webhook ```bash curl -X POST https://api.mobyform.com/api/webhooks \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://your-server.com/webhook/mobyform", "events": ["form_data_add", "form_data_update", "form_data_delete"], "headers": { "X-Webhook-Secret": "your-secret-value" } }' ``` ### Webhook Events | Event | Trigger | | ------------------ | ---------------------------- | | `form_data_add` | A new submission is received | | `form_data_update` | A submission is modified | | `form_data_delete` | A submission is deleted | ### Handle Webhook Events Here is a minimal Node.js/Express handler for incoming webhook events: ```javascript const express = require('express'); const app = express(); app.use(express.json()); app.post('/webhook/mobyform', (req, res) => { const secret = req.headers['x-webhook-secret']; if (secret !== 'your-secret-value') { return res.status(401).send('Unauthorized'); } const { event, formKey, data } = req.body; switch (event) { case 'form_data_add': console.log(`New submission on form ${formKey}:`, data.fields); break; case 'form_data_update': console.log(`Updated submission ${data.id} on form ${formKey}`); break; case 'form_data_delete': console.log(`Deleted submission ${data.id} on form ${formKey}`); break; } res.status(200).send('OK'); }); app.listen(3000); ``` ## Error Handling When something goes wrong, the API returns a standard error response: ```json { "error": { "code": "INVALID_REQUEST", "message": "Description of what went wrong" } } ``` ### Common Error Codes | HTTP Status | Error Code | Meaning | Solution | | ----------- | ----------------- | ---------------------------------------------------- | -------------------------------------------------------- | | `400` | `INVALID_REQUEST` | Request body is malformed or missing required fields | Check your JSON structure and required parameters | | `401` | `UNAUTHORIZED` | API key is missing or invalid | Verify the `Authorization` header and key | | `403` | `FORBIDDEN` | API key lacks permission for this action | Check the key's permission scope in Settings | | `404` | `NOT_FOUND` | The form or submission does not exist | Verify the form key or data ID | | `429` | `RATE_LIMITED` | Too many requests | Reduce request frequency; see rate limits below | | `500` | `INTERNAL_ERROR` | Server-side error | Retry after a short delay; contact support if persistent | ## Rate Limits | Plan | Monthly Limit | | -------------- | --------------- | | **Pro** | 1,000 requests | | **Business** | 10,000 requests | | **Enterprise** | Custom | When you exceed the limit, the API returns `429 Too Many Requests`. The response includes a `Retry-After` header indicating when you can make requests again. ## Next Steps * [API Reference](/docs/advanced/api) — Full API documentation with all endpoints * [Integrations](/docs/integrations) — Use built-in integrations without writing code --- # How to Create an Order Form (https://mobyform.com/en/docs/guides/create-order-form) ## How to Create an Order Form This guide helps you create a form for product inquiries, event registrations, quote requests, and service orders. Mobyform does not currently collect payments inside forms, so use this flow to capture order details and complete billing in your existing checkout, invoice, or payment system. ## Prerequisites * Decide what details you need before follow-up or fulfillment. * Prepare item names, service options, quantities, and any required contact fields. * Do not ask respondents to enter card numbers or payment credentials into form fields. ## Step 1: Create the Form 1. Click **"New Form"** -> **"Blank Form"**. 2. Select **"Standard Form"** as the form type. 3. Enter a title such as "Course Registration Request" or "Service Order Request". ## Step 2: Design the Form ### Customer Information * **Single-Line Text** - Full name * **Phone** - Contact number * **Single-Line Text** - Email address ### Product or Service Selection Choose the approach that fits your scenario: **Option A: Fixed-Price Products** * Use a **"Radio"** field to list product options * Label each option with its price, for example "Basic Course - $99" or "Premium Course - $299" **Option B: Product Select Component** * Use the **"Product Select"** field if it is available in your workspace * Add product details such as name, image, and price * Let users select quantities **Option C: Custom Quote** * Use text, number, or currency-style fields for quote inputs * This works well for custom service requests or donation pledges that will be handled outside the form ### Additional Information * **Multi-Line Text** - Special requirements or notes * **Dropdown** - Shipping method, if applicable * **Single-Line Text** - Delivery address, if applicable ### Use Calculated Fields If the total depends on selections: 1. Add a **"Calculated Field"**. 2. Write a formula referencing the product selection fields. 3. Let the form calculate an informational order total automatically. ## Step 3: Add Order Summary Fields If the total depends on user selections, add calculated fields so your team can review the order clearly. | Field | Description | | ---------------------- | ------------------------------------------------------------ | | **Calculated Total** | Informational total based on selected products or services | | **Order Notes** | Special requests, delivery notes, or internal handling notes | | **Confirmation Email** | Contact address for follow-up | | **Reference ID** | Optional ID used by your downstream order workflow | ### Dynamic Totals If the amount varies based on user selections: * Link the amount to a calculated field or product-style selection field * Let the system compute an informational amount based on choices * Complete payment outside Mobyform if payment is required ## Step 4: Configure Submission Flow ### Post-Submission Actions * Display a confirmation message * Redirect to a custom thank-you page or external checkout page * Send a confirmation email to the respondent * Notify your team for manual review or fulfillment ### Submission Limits * For limited stock, set a maximum submission count * For time-limited offers, set a submission deadline ## Step 5: Publish and Promote 1. Publish the form and get the share link. 2. Embed the form on your product or event page. 3. Promote it via email and social media. ## Step 6: Manage Orders ### Review Submissions In the data management page: * View all order submissions * Filter by product, service, status, or date * Export order records to Excel or CSV * Add internal follow-up notes where your workflow supports them ### Suggested Status Values | Status | Description | | ------------- | --------------------------------------------- | | **New** | Order details were submitted | | **Reviewing** | Your team is checking details or availability | | **Invoiced** | Payment was requested outside Mobyform | | **Completed** | The request was fulfilled | --- # How to Create an Online Quiz (https://mobyform.com/en/docs/guides/create-quiz) ## How to Create an Online Quiz This guide walks you through creating an online exam — from question design to scoring and grade management. ## Step 1: Create an Exam Form 1. Click **"New Form"** → **"Blank Form"** 2. Select **"Exam Form"** as the form type 3. Enter a title like "Product Knowledge Assessment" > Selecting "Exam Form" automatically enables the scoring system. ## Step 2: Add Questions ### Objective Questions **Multiple Choice (Single Answer)**: 1. Drag a **"Radio"** field onto the canvas 2. Enter the question text 3. Add options (e.g., A, B, C, D) 4. In the right panel's "Exam Settings", set the correct answer and point value **Multiple Choice (Multiple Answers)**: 1. Drag a **"Checkbox"** field onto the canvas 2. Enter the question and options 3. Set correct answers (multiple) and point value 4. Optional: Enable "Partial credit" for partially correct answers **True/False**: 1. Use a **"Radio"** field with two options: "True" and "False" 2. Set the correct answer and point value ### Subjective Questions **Fill-in-the-Blank**: 1. Use **"Single-Line Text"** or **"Multi-Line Text"** 2. Set a reference answer (for grading reference) 3. Set scoring to manual **Short Answer / Essay**: 1. Use **"Multi-Line Text"** 2. Set a reference answer and explanation 3. Will be graded manually by an administrator ### Set Points for Each Question In the field's "Exam Settings": * **Points** — Maximum score for the question * **Correct Answer** — The standard answer * **Explanation** — Answer explanation (optional, shown to test-takers after submission) ## Step 3: Configure Exam Settings Go to "Settings" → "Exam Settings": ### Scoring Method * **Auto-scoring** — Objective questions graded by the system * **Manual scoring** — Subjective questions graded by administrators * **Mixed mode** — Auto for objective + manual for subjective ### Exam Behavior | Setting | Description | | ------------------------ | ------------------------------------------------------------- | | **Time Limit** | Set exam duration (e.g., 60 minutes); auto-submits on timeout | | **Shuffle Questions** | Each test-taker sees questions in a different order | | **Shuffle Options** | Options within each question are randomized | | **Allow Retakes** | Whether test-takers can retake the exam | | **Show Score** | Whether to display the score immediately after submission | | **Show Correct Answers** | Whether to reveal correct answers | | **Show Explanations** | Whether to show answer explanations | ### Grade Levels Set score ranges and their corresponding evaluations: | Score Range | Grade | | ----------- | --------- | | 90-100 | Excellent | | 80-89 | Good | | 70-79 | Average | | 60-69 | Pass | | 0-59 | Fail | ## Step 4: Use Question Banks (Optional) For managing large pools of questions: 1. Go to **"Question Bank"** 2. Create a bank and add questions 3. In the exam, choose to randomly draw from the bank 4. Set the number to draw (e.g., 50 random questions from a pool of 100) ### Benefits of Question Banks * Each test-taker gets a different paper, preventing cheating * Reuse questions across multiple exams * Organize by difficulty level ## Step 5: Publish the Exam ### Access Control * **Password Protection** — Only people with the password can take the exam * **Whitelist** — Allow only specified individuals * **Login Required** — Test-takers must log in ### Time Control * Set exam open and close times * The exam is only accessible within the designated window ### Share the Exam * Copy the exam link and send to test-takers * Generate a QR code for scanning * Send exam notification via email ## Step 6: Manage Grades ### Auto-Scored Results Objective question results are available immediately: * Correct/incorrect status for each question * Total score and score percentage * Ranking position ### Manual Grading For subjective questions, administrators grade manually: 1. Go to the "Data" page 2. Click on a submission to review 3. View answers and assign scores for each question 4. Submit the grading results ### Grade Analytics View on the statistics page: * **Average Score** — Mean score across all test-takers * **Highest / Lowest Score** — Score extremes * **Pass Rate** — Percentage reaching the passing threshold * **Score Distribution** — Number of test-takers per score range * **Per-Question Accuracy** — Identify hard and easy questions * **Leaderboard** — Test-takers ranked by score ### Public Leaderboard You can make the leaderboard public so all test-takers can view rankings and scores. ## Anti-Cheating Measures * **Shuffle questions** — Different order for each person * **Shuffle options** — Randomized option order per question * **Random draw** — Draw from question bank randomly * **Time limit** — Auto-submit on timeout * **Attempt limit** — Prevent repeated tries ## Related Docs * [Exams & Quizzes](/docs/exam) — Full exam feature documentation * [Field Types](/docs/field-types) — Field types used for questions * [Data Management](/docs/data-management) — Grade data management --- # How to Create a Registration Form (https://mobyform.com/en/docs/guides/create-registration) ## How to Create a Registration Form This guide helps you create a complete registration form for events, courses, conferences, and other sign-up scenarios. ## Step 1: Create the Form 1. Click **"New Form"** → **"Blank Form"** 2. Select **"Standard Form"** type 3. Enter a title like "Spring 2024 Event Registration" ## Step 2: Add Registration Fields ### Basic Information Add these common fields: * **Single-Line Text** — Full name * **Phone** — Contact number * **Single-Line Text** — Email (enable email format validation) * **Radio** — Gender * **Dropdown** — Age group / Department / Position ### Event-Specific Information * **Radio** or **Dropdown** — Select session/course * **Checkbox** — Topics of interest * **Reservation Date** — Choose attendance date * **Reservation Time Slot** — Choose time slot (with capacity limits) ### Additional Information * **Multi-Line Text** — Notes or special requirements * **File Upload** — Upload ID photo or supporting documents * **Privacy Consent** — Data processing agreement ## Step 3: Set Up Validation Ensure you collect valid data: * **Name** — Set as required * **Phone** — Set as required; format is auto-validated * **Email** — Set as required with format validation * **Session** — Set as required ### Use Conditional Logic Show different follow-up questions based on selection: * Choose "In-person event" → Show "Dietary preference" and "Transport method" * Choose "Online event" → Show "Device type" ## Step 4: Set Submission Limits ### Cap Registration Count In "Form Settings" → "Submission Settings": * Set **Max Submissions** (e.g., limit to 100 registrations) * The form auto-closes when the limit is reached, showing a "Registration full" message ### Prevent Duplicate Registrations * Enable **"1 submission per person"** * Or use **"Login Required"** to ensure one registration per account ### Set Registration Window * Configure start and end times in submission settings * Before start time: shows "Registration not yet open" * After end time: shows "Registration closed" ## Step 5: Set Up Notifications ### Admin Notifications * Enable email notifications for each new registration * Add multiple recipients (e.g., event organizer and admin staff) ### Registrant Confirmation * Enable submission confirmation in "Reply Settings" * Let registrants know their sign-up was successful ## Step 6: Customize and Publish ### Branding * Upload an event poster as the cover image * Use event brand colors * Add event details in the description ### Publish and Promote 1. **Publish the form** to get the share link 2. **Generate QR code** — Print on promotional posters 3. **Embed in website** — Place on the event page 4. **Email outreach** — Send invitation emails ## Step 7: Manage Registrations * View all registrations on the "Data" page * Filter by session/date * Export the registration list to Excel * Use print templates for check-in sheets ## Advanced Tips ### Use Time Slots for Capacity Control Reservation time slots support per-slot capacity limits — when a slot is full, it becomes unavailable automatically. ### Add a Raffle to Boost Participation Use the [Lottery feature](/docs/advanced/lottery) to offer prize draws for registrants, increasing sign-up motivation. ## Related Docs * [Form Settings](/docs/form-settings) — Configure submission limits and notifications * [Publishing & Sharing](/docs/publishing) — Multiple sharing options * [Lottery](/docs/advanced/lottery) — Raffle for registrants --- # How to Create a Survey (https://mobyform.com/en/docs/guides/create-survey) ## How to Create a Survey This guide walks you through creating a complete survey — from designing questions to collecting and analyzing data. ## Step 1: Create a New Survey 1. Log in to Mobyform and go to your workspace 2. Click **"New Form"** → Select **"Blank Form"** 3. Choose **"Standard Form"** as the form type 4. Enter a title like "Customer Satisfaction Survey" > You can also pick a survey template from the template library for a quick start. ## Step 2: Design Your Survey Structure ### Add an Introduction Add a **"Description Text"** component at the top to explain the survey's purpose and estimated completion time. ``` Thank you for participating in our Customer Satisfaction Survey! This survey takes about 3 minutes to complete. Your feedback helps us improve our products and services. All responses are kept confidential. ``` ### Choose the Right Field Types | Question Type | Recommended Field | Example | | --------------- | -------------------------- | ------------------------------- | | Single choice | **Radio** | "What is your gender?" | | Multiple choice | **Checkbox** | "Which features have you used?" | | Rating | **Star Rating** or **NPS** | "Rate our service" | | Scale matrix | **Matrix Scale** | Multi-dimension satisfaction | | Open-ended | **Multi-Line Text** | "Share your suggestions" | | Ranking | **Sort/Ranking** | "Rank by importance" | ### Recommended Survey Structure A good survey typically includes: 1. **Demographics** — Age, gender, role (optional) 2. **Core Questions** — Questions directly related to your topic 3. **Ratings & Scores** — Satisfaction, NPS, and other metrics 4. **Open Feedback** — Free-text responses 5. **Closing** — Thank the respondent ## Step 3: Set Up Conditional Logic Use conditional logic to make your survey smarter: **Example 1**: Show different questions based on satisfaction score * When "Satisfaction Rating" ≤ 2, show "What areas need improvement?" * When "Satisfaction Rating" ≥ 4, show "What did you like most?" **Example 2**: Branch by user type * When "Are you a paid user?" is "Yes", show paid experience questions * When "No", show free feature questions How to set up: 1. Click the **"Logic"** tab in the editor toolbar 2. Add a logic rule 3. Set trigger conditions and target fields ## Step 4: Customize the Appearance 1. Click the **"Theme"** tab 2. Pick a preset theme or customize colors and fonts 3. Upload your brand logo (optional) 4. Set a cover image (optional) **Design tips**: * Use your brand color as the theme color for consistency * Avoid busy backgrounds that distract from content * Ensure text has enough contrast against the background ## Step 5: Configure Settings ### Submission Settings * Set a thank-you message: "Thank you for your feedback! Your input is very valuable to us." * Enable "Allow resubmission" if you want users to update their answers ### Access Settings * Keep "Public Access" for anonymous surveys * Enable "Login Required" if you need to track respondents * Set a deadline if you have a time limit ### Notifications * Enable email notifications to be alerted on each submission * Or set up scheduled digest notifications for a daily summary ## Step 6: Publish and Share 1. Click the **"Publish"** button 2. Copy the share link and send it to your target audience 3. Download the QR code for offline distribution 4. Embed in your website using iframe if needed ### Tips to Improve Response Rate * Mention the survey purpose and time needed in the email subject * Set a deadline to create urgency * Offer incentives (like a raffle) for participation * Distribute across multiple channels (email + social + QR code) ## Step 7: Analyze the Data Once responses come in, go to the "Data" tab: 1. **Statistics Dashboard** — Total submissions, completion rate, daily trends 2. **Field Analysis** — Response distribution charts for each question 3. **Cross-tabulation** — Compare responses across different groups 4. **Export** — Export to Excel for deeper analysis ### Key Metrics to Watch * **Response rate** — Surveys sent vs. completed * **Average completion time** — Check if the survey is too long * **NPS score** — Net Promoter Score (if using NPS field) * **Open-ended themes** — Recurring topics in free-text responses ## Best Practices * **Keep it short** — Aim for under 20 questions, 5-10 minutes max * **Avoid leading questions** — Keep questions neutral and unbiased * **Include "Other" options** — Add free-text option to choice questions * **Easy questions first** — Start simple, save sensitive questions for later * **Test first** — Have 2-3 people trial the survey before publishing * **Use pagination** — Split long surveys into pages to reduce fatigue ## Related Docs * [Field Types](/docs/field-types) — Explore all available fields * [Conditional Logic](/docs/form-logic) — Set up smart logic * [Data Management](/docs/data-management) — Manage and analyze data --- # Custom Domain Setup (https://mobyform.com/en/docs/guides/custom-domain-setup) ## Custom Domain Setup This guide walks you through configuring a custom domain so your forms are served from your own branded URL (e.g., `forms.yourcompany.com`) instead of the default Mobyform domain. > Requires Pro plan or above ## Overview With a custom domain, your form links look like this: | Type | Example URL | | ----------------- | ----------------------------------------------- | | **Default** | `https://build.mobyform.com/s/your-form-key` | | **Custom Domain** | `https://forms.yourcompany.com/s/your-form-key` | This provides a professional, branded experience for respondents and removes any third-party branding from your form URLs. ## Step 1: Go to Domain Settings 1. Log in to Mobyform 2. Navigate to **"Settings"** → **"Domains"** 3. Click **"Add Domain"** ## Step 2: Enter Your Domain Enter the domain or subdomain you want to use: * **Subdomain (recommended)**: `forms.yourcompany.com` * **Root domain**: `yourcompany.com` (requires flattened CNAME, ALIAS, or ANAME support) Subdomains are recommended because they do not interfere with your main website and are simpler to configure. ## Step 3: Add DNS Records After entering your domain, Mobyform displays the required DNS records. Subdomains use a CNAME record. Root domains require your DNS provider to support flattened CNAME, ALIAS, or ANAME records; if your provider does not support this, use a subdomain instead. | Domain Type | Record Type | Host/Name | Value/Target | TTL | | ----------- | ------------------------------- | --------- | -------------------- | ---- | | Subdomain | CNAME | `forms` | `forms.mobyform.com` | 3600 | | Root domain | Flattened CNAME / ALIAS / ANAME | `@` | `forms.mobyform.com` | 3600 | The exact host name depends on your chosen subdomain. For `forms.yourcompany.com`, the host is `forms`. ### DNS Provider Instructions #### Cloudflare 1. Log in to the Cloudflare dashboard 2. Select your domain 3. Go to **DNS** → **Records** 4. Click **Add Record** 5. Set Type to **CNAME**, Name to `forms`, Target to `forms.mobyform.com` 6. For root domains, set Name to `@`; Cloudflare flattens the CNAME automatically 7. Set Proxy status to **DNS only** (grey cloud) during setup 8. Click **Save** #### GoDaddy 1. Log in to your GoDaddy account 2. Go to **My Products** → select your domain → **DNS** 3. Click **Add** under Records 4. Select Type **CNAME**, enter Host `forms`, Points to `forms.mobyform.com` 5. Set TTL to **1 Hour** 6. Click **Save** For root domains, use GoDaddy's forwarding or ALIAS/ANAME-equivalent feature if available. If it is not available, use a subdomain such as `forms.yourcompany.com`. #### Namecheap 1. Log in to Namecheap 2. Go to **Domain List** → click **Manage** next to your domain 3. Select the **Advanced DNS** tab 4. Click **Add New Record** 5. Choose Type **CNAME Record**, Host `forms`, Value `forms.mobyform.com` 6. Set TTL to **Automatic** 7. Click the checkmark to save For root domains, choose **ALIAS Record** or another flattened CNAME option if your plan supports it. If it is not available, use a subdomain such as `forms.yourcompany.com`. ## Step 4: Verify Domain Ownership After adding the DNS record: 1. Return to Mobyform's domain settings page 2. Click **"Verify Domain"** 3. The system checks that the CNAME record is correctly configured 4. If verification succeeds, the domain status changes to **Active** DNS propagation can take anywhere from a few minutes to 48 hours. If verification fails, wait and try again. ## Step 5: SSL Certificate Once the domain is verified, Mobyform automatically provisions a free SSL certificate: * SSL is issued and installed automatically — no action required * Your forms are accessible via `https://` immediately after provisioning * The certificate auto-renews before expiration ## Using Your Custom Domain Once set up, all form links under your account can use the custom domain: * Share links use your domain automatically * QR codes point to your custom domain * Embedded forms can reference the custom domain URL * Existing links using the default domain continue to work ## Troubleshooting ### Verification keeps failing * **Wait for DNS propagation** — Changes can take up to 48 hours to propagate globally. Try verifying again after a few hours. * **Check the CNAME target** — Ensure the record points to the exact value shown in your Mobyform settings. * **Remove conflicting records** — If an A record exists for the same host, it may conflict with the CNAME. Remove it before adding the CNAME. * **Check for typos** — Confirm the host name matches exactly (e.g., `forms`, not `form` or `forms.yourcompany.com`). ### SSL certificate not working * SSL provisioning begins only after domain verification succeeds * Allow up to 30 minutes for the certificate to be issued * If HTTPS still does not work after an hour, try re-verifying the domain ### Forms show a security warning * Ensure you are accessing the form via `https://`, not `http://` * If using Cloudflare, set SSL mode to **Full** or **Full (Strict)** ## Domain Quotas | Plan | Custom Domains | | -------------- | -------------- | | **Free** | Not supported | | **Pro** | 5 | | **Business** | Unlimited | | **Enterprise** | Unlimited | ## Next Steps * [Custom Domain Reference](/docs/advanced/custom-domain) — Domain management and status details * [Publishing](/docs/publishing) — Share forms using your custom domain * [Theme Customization](/docs/theme) — Match form styling to your brand --- # How to Embed Forms in Your Website (https://mobyform.com/en/docs/guides/embed-form) ## How to Embed Forms in Your Website Mobyform supports multiple ways to embed forms into your website, so users can fill them out without leaving your site. ## Embedding Options Overview | Method | Description | Best For | | ------------------- | --------------------------------------- | ------------------------------------ | | **iframe Embed** | Embed the form inline on a page | Most common; works with any website | | **Popup Embed** | Form appears in a popup on button click | Saves page space; great for feedback | | **Full-Page Embed** | Form fills the entire page | Dedicated form pages | ## iframe Embed ### Get the Embed Code 1. Open the form's **"Publish"** page 2. Select the **"Embed"** option 3. Copy the iframe code ### Example Embed Code ```html ``` ### Auto-Adjusting Height To make the form height adapt to content: ```html ``` ### Platform-Specific Instructions #### WordPress 1. In the post or page editor, add a **"Custom HTML"** block 2. Paste the iframe code 3. Preview and publish #### React / Next.js ```jsx function FormEmbed() { return ( ``` ## Embed Settings ### Pre-Fill Fields via URL Parameters You can pre-populate form fields by adding URL parameters: ``` https://your-domain.com/s/your-form-key?field_name=John&field_email=john@example.com ``` Use cases: * Pre-fill email from an email campaign link * Pass product name from a product page * Forward customer info from a CRM ### Custom Styling For more precise style control: 1. Adjust styles in the form's "Theme" settings 2. Pro plans support custom CSS injection 3. Match the form style to your website's overall design ## Important Notes * **HTTPS required** — The embedding page should use HTTPS to prevent browsers from blocking the form * **Cross-origin isolation** — The iframe form is isolated from the parent page and cannot communicate directly * **Mobile responsiveness** — iframes on mobile may need additional responsive handling * **Load time** — First load takes a moment; consider adding a loading indicator ## Common Issues ### The form doesn't display fully in the iframe? Check that the iframe `height` attribute is large enough — set it to at least 600px or use percentage height. ### The form won't submit after embedding? Check for cross-origin restrictions and ensure the form URL uses HTTPS. ### How do I redirect after form submission? In "Form Settings" → "Submission Settings", set a "Redirect URL" — the form will automatically navigate to your specified URL after submission. ## Related Docs * [Publishing & Sharing](/docs/publishing) — More sharing options * [Custom Domains](/docs/advanced/custom-domain) — Use your own domain * [Theme Customization](/docs/theme) — Adjust form styling --- # GDPR Controls Setup (https://mobyform.com/en/docs/guides/gdpr-setup) ## GDPR Controls Setup This guide walks you through privacy controls that can support GDPR-oriented data handling in Mobyform forms. It is not legal advice and does not guarantee that your organization or a specific form is GDPR compliant. ## Before You Begin GDPR may apply if you collect personal data from individuals in the European Economic Area (EEA). Even if your organization is based outside the EU, GDPR can apply when you process data of EU residents. Key GDPR principles that affect form design: * **Lawfulness** — You must have a legal basis for collecting data * **Purpose limitation** — Data must be collected for a specific, stated purpose * **Data minimization** — Only collect data that is necessary * **Storage limitation** — Do not retain data longer than needed * **Accountability** - You must be able to demonstrate appropriate practices ## Step 1: Enable Privacy Consent Add a consent mechanism to your form so respondents explicitly agree to data processing. 1. Open your form in the editor 2. Go to **"Form Settings"** → **"Privacy"** 3. Enable **"Privacy Consent"** 4. Configure the consent options: | Setting | Description | | ----------------------- | -------------------------------------------------- | | **Consent Checkbox** | Adds a required checkbox at the end of the form | | **Consent Text** | Customize the consent message shown to respondents | | **Privacy Policy Link** | Link to your organization's full privacy policy | | **Terms Link** | Link to your terms of service (optional) | **Example consent text**: ``` I consent to the collection and processing of my personal data as described in the Privacy Policy. I understand I can withdraw my consent at any time. ``` ## Step 2: Mark Sensitive Fields Identify and mark fields that collect sensitive personal information. Marked fields receive additional access controls and encryption. 1. In the form editor, click on a field that collects personal data 2. Open the field's **"Advanced Settings"** 3. Enable **"Sensitive Field"** 4. Select the sensitivity category: | Category | Examples | | ------------------------- | --------------------------------------------- | | **Personal Identity** | Full name, ID number, passport number | | **Contact Information** | Email, phone number, address | | **Financial Information** | Bank account, credit card, salary | | **Health Information** | Medical conditions, prescriptions, disability | | **Location Data** | GPS coordinates, home address | | **Biometric Data** | Fingerprints, facial recognition data | Sensitive fields are: * Encrypted at rest in the database * Masked in the data management panel (e.g., `john***@email.com`) * Excluded from data exports unless explicitly included by an admin * Logged whenever accessed ## Step 3: Set Data Retention Policy Configure how long form submission data is retained. 1. Go to **"Form Settings"** → **"Data Retention"** 2. Choose a retention policy: | Policy | Behavior | | --------------------------- | -------------------------------------------------------------------- | | **Permanent** | Data is never automatically deleted | | **Custom Period** | Data is auto-deleted after a set number of days (e.g., 90, 180, 365) | | **Delete After Processing** | Data is deleted once it has been processed or exported | 3. Set the retention period if using "Custom Period" 4. Enable **"Notify Before Deletion"** to receive a warning before data is purged Data scheduled for deletion can be reviewed and extended if needed before the retention period expires. ## Step 4: Configure Lawful Basis Specify the legal basis under which you are collecting and processing data. 1. Go to **"Form Settings"** → **"Privacy"** → **"Lawful Basis"** 2. Select the applicable basis: | Basis | When to Use | | ----------------------- | -------------------------------------------------------------- | | **Consent** | Respondent explicitly agrees to data processing | | **Contract** | Data is needed to fulfill a contract with the respondent | | **Legal Obligation** | Processing is required by law | | **Legitimate Interest** | You have a justified business reason (requires balancing test) | | **Public Interest** | Processing serves a public function | | **Vital Interest** | Processing is necessary to protect someone's life | For most forms collecting voluntary responses, **Consent** is the appropriate basis. ## Step 5: Set Up Data Subject Request Handling GDPR grants individuals rights over their data. Configure how these requests are handled. 1. Go to **"Settings"** → **"Privacy"** → **"Data Subject Requests"** 2. Enable the request portal 3. Configure handling for each right: | Right | Description | Configuration | | -------------------------- | ------------------------------------------------------ | -------------------------------------------- | | **Right of Access** | Respondent can request a copy of their data | Set response timeframe (default: 30 days) | | **Right to Deletion** | Respondent can request their data be deleted | Enable auto-deletion or manual review | | **Right to Rectification** | Respondent can request corrections to their data | Enable self-service editing or manual review | | **Right to Restriction** | Respondent can limit how their data is used | Enable processing restriction flag | | **Right to Portability** | Respondent can receive their data in a portable format | Enable CSV/JSON export for respondents | When a data subject request is received: 1. The system logs the request with a timestamp 2. The assigned admin is notified 3. The admin reviews and processes the request 4. A confirmation is sent to the requester 5. The action is recorded in the audit log ## Step 6: Run a DPIA Assessment For forms that process high-risk data (large-scale processing, sensitive categories, systematic monitoring), a Data Protection Impact Assessment is recommended. 1. Go to **"Settings"** → **"Privacy"** → **"DPIA"** 2. Click **"New Assessment"** 3. Complete the assessment questionnaire: * Describe the data processing activity * Identify the necessity and proportionality of processing * Assess risks to individuals' rights and freedoms * Document mitigation measures 4. Save the assessment so it is stored with your privacy records ### When DPIA Is Required * Forms collecting health or biometric data * Large-scale surveys targeting a broad population * Forms that combine data from multiple sources * Automated decision-making based on form responses ## Step 7: Configure Breach Notification Set up automated notifications for handling potential data breaches. 1. Go to **"Settings"** → **"Privacy"** → **"Breach Notification"** 2. Configure the notification settings: | Setting | Description | | -------------------------- | -------------------------------------------------------------- | | **Internal Alert** | Email and in-app notification to designated privacy officers | | **Authority Notification** | Template for notifying supervisory authorities within 72 hours | | **Subject Notification** | Template for notifying affected individuals | | **Breach Log** | Automatic logging of breach details, timeline, and response | When a breach is reported: 1. An internal alert is sent immediately to the privacy officer 2. The breach is logged with date, scope, and affected data types 3. If high risk, the authority notification template is prepared 4. Affected individuals are notified with clear language about the breach and recommended actions ## Audit Logs Privacy-related actions are automatically logged and cannot be modified or deleted: * Consent collection and withdrawal events * Data access, modification, and deletion actions * Data subject requests and their resolution * DPIA assessments and updates * Breach notifications and responses * Admin access to sensitive fields Access the audit log from **"Settings"** → **"Privacy"** → **"Audit Log"**. ## Compliance Checklist Use this checklist to verify that key privacy controls have been configured: * [ ] Privacy consent enabled with clear consent text * [ ] Privacy policy linked in the consent section * [ ] Sensitive fields identified and marked * [ ] Data retention policy configured * [ ] Lawful basis selected and documented * [ ] Data subject request handling configured * [ ] DPIA completed for high-risk forms * [ ] Breach notification set up * [ ] Team members trained on GDPR procedures ## Next Steps * [GDPR Controls Reference](/docs/advanced/gdpr) - Detailed reference for privacy controls * [Data Management](/docs/data-management) — Manage, export, and delete form data * [Collaboration](/docs/collaboration) — Control team access to sensitive data --- # Guides (https://mobyform.com/en/docs/guides) ## Guides These guides provide detailed step-by-step instructions for common use cases, helping you create and configure forms efficiently. ## Form Creation Guides * [How to Create a Survey](/docs/guides/create-survey) — Design professional surveys for feedback and market research * [How to Create a Registration Form](/docs/guides/create-registration) — Event sign-ups, course enrollment, conference check-in * [How to Create an Online Quiz](/docs/guides/create-quiz) — Online exams with auto-scoring and grade analytics * [How to Create an Order Form](/docs/guides/create-order-form) - Product choices, service requests, and order details * [How to Save a Form Template](/docs/guides/save-form-template) - Turn a finished form into a reusable template ## Integration & Embedding * [How to Embed Forms in Your Website](/docs/guides/embed-form) — iframe embed, popup embed, platform-specific instructions ## Design Reuse * [How to Reuse a Theme](/docs/guides/reuse-theme) - Save and apply reusable form styling ## Data Processing * [How to Use Print Templates](/docs/guides/print-template) — Custom print templates, certificate generation, check-in sheets ## Advanced Setup * [Offline Form Collection](/docs/guides/offline-collection) — Collect responses without an internet connection * [Custom Domain Setup](/docs/guides/custom-domain-setup) — Configure your own domain for branded form sharing * [GDPR Controls Setup](/docs/guides/gdpr-setup) - Configure privacy controls for your forms * [API Quick Start](/docs/guides/api-quickstart) — Make your first API call in minutes --- # Offline Form Collection (https://mobyform.com/en/docs/guides/offline-collection) ## Offline Form Collection Mobyform supports offline data collection, allowing you to gather form responses in areas with limited or no internet connectivity. Data is saved locally on the device and automatically syncs when a connection is restored. > Requires Pro plan or above ## How Offline Mode Works Offline mode is built on Progressive Web App (PWA) technology. When you open a form while online, a service worker caches the form structure, assets, and submission logic. Once cached, the form can be filled out and submitted without an internet connection. Submissions are stored in the browser's local storage and uploaded automatically when connectivity returns. ### Offline Mode Architecture | Component | Role | | --------------------- | ----------------------------------------------- | | **Service Worker** | Caches form assets and handles offline requests | | **Local Storage** | Stores form submissions until sync | | **Sync Engine** | Detects connectivity and uploads queued data | | **Conflict Resolver** | Handles duplicate or conflicting submissions | ## Step 1: Enable Offline Mode 1. Open the form you want to use offline 2. Go to **"Form Settings"** → **"Advanced"** 3. Toggle **"Enable Offline Mode"** to on 4. Save the settings Once enabled, the form will include a service worker that caches all necessary resources. ## Step 2: Cache the Form While Online Before going into the field, open the form on each device that will be used for offline collection: 1. Open the form link in a browser (Chrome, Edge, or Safari recommended) 2. Wait for the page to fully load — a confirmation message appears: "Form ready for offline use" 3. Optionally, add the form to your device's home screen for quick access (browser menu → "Add to Home Screen") The form is now cached and available offline on that device. ## Step 3: Collect Data Offline When you are offline: 1. Open the cached form (from browser or home screen shortcut) 2. Fill out the form fields as normal 3. Click **"Submit"** 4. The submission is saved locally — a notice confirms: "Response saved. Will sync when online." 5. Repeat for additional submissions A counter in the form header shows how many submissions are queued locally. ## Step 4: Sync When Connection Is Restored When the device reconnects to the internet: 1. Open the form in the browser (or it may sync in the background if the page is still open) 2. The sync engine detects the connection and begins uploading queued submissions 3. A progress indicator shows the sync status 4. Once complete, local data is cleared If sync fails for any submission (e.g., a server error), it remains in the local queue and retries automatically. ### Manual Sync If automatic sync does not trigger: 1. Open the form while online 2. Click the **sync icon** in the form header 3. Confirm the upload ## Limitations Offline mode has some constraints to be aware of: | Feature | Offline Support | | ------------------------- | --------------------------------------------- | | Text, number, date fields | Fully supported | | Radio, checkbox, dropdown | Fully supported | | Star rating, NPS | Fully supported | | File upload | Not supported offline (requires reconnection) | | Image capture | Saved locally, uploaded on sync | | Signature field | Fully supported | | Payment fields | Not supported offline | | Conditional logic | Supported (logic runs locally) | | Multi-page forms | Fully supported | ## Best Practices * **Test offline before fieldwork** — Verify the form works offline on the actual devices before deploying to the field * **Ensure the form is fully cached** — Wait for the "ready for offline use" confirmation on each device * **Use supported field types** — Avoid file uploads and payment fields in forms intended for offline use * **Check battery levels** — Offline data lives in the browser; if the device dies before sync, data may be lost * **Sync promptly** — Upload collected data as soon as connectivity is available to minimize risk of data loss * **Clear browser data carefully** — Clearing browser cache or site data will delete any un-synced submissions ## Troubleshooting ### Form does not load offline * Ensure the form was fully loaded while online at least once * Check that the browser supports service workers (use Chrome, Edge, or Safari) * Verify that "Enable Offline Mode" is toggled on in form settings ### Submissions are not syncing * Confirm the device has an active internet connection * Try opening the form and clicking the manual sync icon * Check if the browser blocked background sync permissions ### Duplicate submissions after sync * The sync engine includes deduplication logic based on submission timestamps * If duplicates appear, they can be identified and removed in the Data Management panel ## Next Steps * [Form Settings](/docs/form-settings) — Configure additional form options * [Data Management](/docs/data-management) — Manage and export synced submissions --- # How to Use Print Templates (https://mobyform.com/en/docs/guides/print-template) ## How to Use Print Templates Mobyform supports custom print templates, letting you print submitted data, generate certificates, check-in sheets, and other documents in your desired format. ## Use Cases * **Check-in sheets** — Print attendee sign-in lists for events * **Certificates** — Generate certificates for exam passers * **Data reports** — Print data in custom formats * **Receipts/Orders** — Print payment order information * **Notices** — Print personalized notification documents ## Print with Default Template ### Print a Single Record 1. Go to the form's **"Data"** page 2. Click on a submission to view its details 3. Click the **"Print"** button 4. The system generates a print page using the default template 5. Confirm and print ### Batch Print 1. Select multiple records in the data list 2. Click **"Print"** in the batch actions 3. Print selected records one by one or combined ## Custom Print Templates ### Create a Print Template 1. On the form's publish page, find the **"Print Template"** settings 2. Click **"New Template"** 3. Enter the template editor ### Template Editor The print template editor supports: * **Drag fields** — Drag form fields onto the template * **Free layout** — Freely position and resize fields * **Text editing** — Add static text, titles, descriptions * **Styling** — Set font, size, color, alignment * **Images** — Insert logos, stamps, and other images * **Tables** — Arrange data in table layouts * **Page setup** — Paper size (A4, A5, etc.), orientation (portrait/landscape), margins ### Using Field Variables Insert form field values into the template: * Select fields from the field list * Field values are automatically replaced with actual submission data when printing * All field types are supported (text, selections, dates, images, etc.) ### Template Examples **Certificate Template**: ``` [Logo Image] CERTIFICATE OF COMPLETION This certifies that {Name} has successfully completed the "{Course Name}" program on {Date}, with a score of {Exam Score}. Issued by: XXX Training Center Date: {Submission Date} ``` **Check-in Sheet Template**: | # | Name | Phone | Check-in Time | Signature | | - | ------- | -------- | ------------------ | ------------ | | 1 | \{Name} | \{Phone} | \{Submission Time} | \_\_\_\_\_\_ | ## Using Print Templates ### Apply a Template 1. In the data detail view, click **"Print"** 2. Select the print template to use 3. Preview the print result 4. Confirm and print, or export as PDF ### Manage Templates * **Edit** — Modify existing templates * **Duplicate** — Copy a template as a base for a new one * **Delete** — Remove unneeded templates * Each form can have multiple print templates ## Certificate Generation ### Configure a Certificate Template 1. Create a print template with a certificate design 2. Insert required fields (name, score, date, etc.) 3. Add a certificate number (use the random number field) 4. Design the visual style (borders, logo, stamp, etc.) ### Batch Generate Certificates 1. Filter records that meet criteria (e.g., passing test-takers) 2. Select those records 3. Batch print using the certificate template 4. Export as PDF for archiving ## Best Practices * **Preview before printing** — Use print preview to verify the layout * **Consider paper size** — Choose the right paper format for your use case * **Keep it clean** — Only include essential fields in the template * **Test margins** — Different printers have different margin settings; leave enough margin * **Use high-resolution images** — Ensure logos and stamps are crisp and clear ## Related Docs * [Data Management](/docs/data-management) — View and manage data * [Exams & Quizzes](/docs/exam) — Use with certificate features * [Publishing & Sharing](/docs/publishing) — Learn about publishing options --- # How to Reuse a Theme (https://mobyform.com/en/docs/guides/reuse-theme) ## How to Reuse a Theme Reusable themes help you keep brand styling consistent across forms without rebuilding the same colors, fonts, cover, and button styles each time. ## Step 1: Finish the Source Form Style Open the form you want to use as the design source. 1. Go to the form editor. 2. Open the **Theme** tab. 3. Adjust the colors, fonts, input style, button style, cover page, logo, footer, watermark, and custom CSS as needed. 4. Preview the form on desktop and mobile. 5. Fix any low contrast warnings before saving the theme. Only save a theme after the form's visual design is ready to reuse. ## Step 2: Save as My Theme 1. Open the theme library panel. 2. Choose **Save as My Theme**. 3. Enter a clear theme name. 4. Choose a category, create a new personal category, or leave the theme uncategorized. 5. Review the preview card. 6. Save the theme. Theme names are required and can be up to 120 characters. Personal categories make it easier to separate brand systems, event styles, campaign styles, or client-specific styles. ## Step 3: Apply the Theme to Another Form 1. Open another form in the editor. 2. Go to **Theme**. 3. Open the theme library. 4. Switch to **Mine**, or use search to find the theme. 5. Click **Apply** on the theme card. 6. Confirm the change. Applying a theme replaces visual styling only. It does not modify fields, logic, form settings, publish settings, or submissions. ## Step 4: Check the Result After applying the theme: * Confirm the form title and description still fit the layout. * Check that the submit button text is readable. * Review desktop and mobile previews. * Check cover behavior if the theme includes a cover page. * Re-test custom CSS if the target form has different field types. ## When to Use Public Themes Use **Public** themes when your team has approved shared styles that should be reused by many users. Use **My Themes** for private work, experiments, client-specific styles, or designs that are not ready for broader reuse. ## Related Docs * [Theme Customization](/docs/theme) - Full theme designer and library reference * [Form Editor](/docs/form-editor) - Learn where the Theme tab fits in the editor * [Templates](/docs/templates) - Reuse full form structures, not just styling --- # How to Save a Form Template (https://mobyform.com/en/docs/guides/save-form-template) ## How to Save a Form Template Save a form as a template when you want to reuse its fields, layout, logic, settings, and theme as a starting point for future forms. ## Step 1: Prepare the Form Before saving a template: * Remove test-only fields and temporary copy. * Confirm required fields and validation rules. * Check conditional logic. * Review the theme and cover image. * Make sure the form name is clear enough for future users. A template should feel like a reusable starting point, not a half-finished draft. ## Step 2: Open Save as Template 1. Go to form management. 2. Open the form actions menu. 3. Choose **Save as Template**. ## Step 3: Add Template Details Fill in the template details: * **Cover image** - Optional, but recommended for template cards. PNG, JPG, and JPEG files up to 5 MB are supported. * **Template name** - Required. Use a short name that describes the form's purpose. * **Description** - Optional. Explain when to use the template. * **Category** - Optional. Choose an existing category or keep it uncategorized. * **Visibility** - Choose whether the template is private or public. ## Step 4: Choose the Right Visibility Use a **private template** when: * You are saving a personal workflow. * The template is for one project, campaign, or client. * The template still needs review. * You want to organize it with a personal category. Use a **public template** when: * The template is approved for broader reuse. * The template should appear in shared template browsing. * You have permission to publish shared templates. Public templates can only use public categories or uncategorized. If a personal category is selected and you switch the template to public, the category is reset to uncategorized. ## Step 5: Reuse the Template After saving: 1. Open **Template Library** or **My Templates**. 2. Search for the template by name. 3. Preview it before use. 4. Click **Use**. 5. Customize the new form in the editor. The new form is created in the current workspace context. ## Best Practices * Keep template names short and specific. * Use cover images that show the form type or expected use case. * Put private experiments in personal categories. * Use public categories only for templates that are ready for team-wide reuse. * Preview a template after saving so you know future users see the intended result. ## Related Docs * [Templates](/docs/templates) - Full template reference * [Create a Form](/docs/create-form) - Learn all creation methods * [Theme Customization](/docs/theme) - Save visual styling as a reusable theme --- # 团队协作 (https://mobyform.com/zh/docs/collaboration) ## 团队协作 Mobyform 支持多人协作管理表单,通过灵活的权限体系确保团队高效协同。 ## 组织管理 ### 创建组织 1. 进入 **「团队」** 页面 2. 点击 **「创建组织」** 3. 填写组织名称和描述 4. 邀请团队成员加入 ### 组织角色 | 角色 | 权限级别 | 说明 | | -------- | ---- | ------------ | | **所有者** | 最高 | 完整控制权,包括删除组织 | | **管理员** | 高 | 管理成员、设置、账单 | | **成员** | 中 | 创建和编辑表单 | | **受限成员** | 低 | 仅可访问被授权的工作区 | ### 工作区 使用工作区组织和分组表单: * 创建多个工作区 * 按项目或部门分组 * 为工作区分配成员 ## 邀请成员 ### 邀请方式 * **邮件邀请** — 发送邀请链接到邮箱 * **链接邀请** — 生成邀请链接分享 * **Token 邀请** — 使用邀请令牌 ### 接受邀请 被邀请人通过链接加入组织: 1. 点击邀请链接 2. 登录或注册账号 3. 确认加入组织 ## 表单级协作 ### 添加协作者 为单个表单添加协作者: 1. 打开表单的 **「设置」** → **「协作」** 2. 点击「添加协作者」 3. 选择协作者类型: * **个人用户** — 指定具体用户 * **部门** — 指定部门全员 * **角色** — 指定角色全员 4. 分配权限组 ### 权限组 使用预设或自定义权限组控制协作者的操作范围: #### 预设权限组 | 权限组 | 包含权限 | | -------- | ---------------- | | **数据查看** | 查看提交数据 | | **数据管理** | 查看、新增、编辑、删除、导出数据 | | **表单编辑** | 编辑表单 + 查看数据 | | **完全权限** | 所有操作权限 | #### 自定义权限组 创建自定义权限组,精确控制每项权限: **编辑权限:** * 编辑表单结构 * 配置条件逻辑 * 管理主题样式 * 配置维度评价 **数据权限:** * 查看数据详情 * 新增数据 * 导入数据 * 导出数据 * 下载附件 * 搜索查询 * 打印数据 **发布权限:** * 管理发布设置 * 公开发布 * 公开查询 * 定向发布 * 权限组管理 * 数据助手 * 通知分享 * 抽奖管理 * 打印模板 * 证书生成 **统计权限:** * 查看统计面板 * 查看图表 * 数据分析 **设置权限:** * 考试设置 * 提交设置 * 填写设置 * 通知设置 * 分享设置 * 回复设置 * 协作设置 ### 字段级权限 更精细的权限控制: * **字段可见性** — 控制协作者可以看到哪些字段 * **字段编辑权** — 控制协作者可以编辑哪些字段 * **数据级权限** — 控制协作者可以访问哪些数据范围 ## 成员管理 ### 查看成员 在「成员管理」页面查看所有组织成员: * 成员名称和邮箱 * 角色和权限 * 加入时间 * 最近活动 ### 管理成员 * **修改角色** — 提升或降低成员权限 * **移除成员** — 从组织中移除 * **禁用账号** — 临时禁用成员访问 ## 审计日志 追踪团队操作记录: * 表单变更记录 * 数据访问日志 * 权限变更日志 * 导出审计日志 ## 下一步 * [订单表单](/docs/payment) — 了解如何收集订单详情 * [集成](/docs/integrations) — 连接第三方服务 --- # 创建表单 (https://mobyform.com/zh/docs/create-form) ## 创建表单 Mobyform 支持多种表单创建方式,满足不同场景需求。 ## 表单类型 | 类型 | 说明 | 适用场景 | | -------- | ------------ | -------------- | | **普通表单** | 标准数据收集表单 | 问卷调查、报名登记、反馈收集 | | **考试表单** | 支持评分和排名的测验表单 | 在线考试、知识测评、练习题 | | **营销表单** | 用于营销活动的表单 | 活动报名、抽奖、促销登记 | ## 创建方式 ### 空白创建 1. 在工作台点击 **「新建表单」** 按钮 2. 选择 **「空白表单」** 3. 选择表单类型(普通 / 考试 / 营销) 4. 输入表单标题和描述 5. 进入编辑器开始设计 ### 从模板创建 1. 点击 **「新建表单」**,打开 **「模板库」** 2. 按公共分类浏览,或按模板名称搜索 3. 预览模板,检查字段、布局、逻辑和主题 4. 点击 **「使用」** 5. Mobyform 会在当前工作区创建新表单,并自动进入编辑器 6. 发布前可继续修改字段、逻辑、主题和设置 你也可以将已完成的表单保存为模板,之后从 **「我的模板」** 中复用。 ### AI 路线图 AI 辅助创建表单已在规划中,但目前还不是已发布的自助创建方式。 当前生产环境建议使用空白创建、模板库或题库创建表单。 ### 从题库创建 1. 打开题库管理 2. 选择需要的题目 3. 批量添加到新表单 ## 表单管理 ### 文件夹组织 * 创建文件夹来分类管理表单 * 支持拖拽移动表单到不同文件夹 * 文件夹支持嵌套层级 ### 表单操作 * **复制** — 快速复制一份完整的表单 * **重命名** — 修改表单标题 * **移动** — 移动到其他文件夹 * **删除** — 删除表单(移至回收站) * **导出** — 导出表单配置为 JSON * **另存为模板** — 保存到个人模板库;有权限时也可以保存为公共模板 保存为模板时,需要填写名称,并可添加描述、封面图和分类。私有模板可以使用个人分类;公共模板只能使用公共分类或未分类。 ### 表单状态 | 状态 | 说明 | | ------- | -------------- | | **草稿** | 表单正在编辑中,未发布 | | **已发布** | 表单对外可访问,正在收集数据 | | **已停止** | 表单已归档,不再接受提交 | ## 下一步 * [表单编辑器](/docs/form-editor) — 学习如何使用编辑器设计表单 * [模板](/docs/templates) - 使用和保存可复用模板 * [字段类型](/docs/field-types) — 了解所有可用的字段类型 --- # 数据管理 (https://mobyform.com/zh/docs/data-management) ## 数据管理 表单发布并收集数据后,在「数据」页面集中管理所有提交。 ## 查看数据 ### 表格视图 默认以表格形式展示所有提交数据: * 每行代表一条提交记录 * 每列对应一个表单字段 * 支持自定义显示列 * 支持列排序 ### 单条详情 点击任意一行,查看该条提交的完整详情: * 所有字段的值 * 提交时间 * 提交者信息 * 附件预览 * 回复和评论 ## 筛选与搜索 ### 字段筛选 按字段值筛选数据: * 文本字段 — 包含、等于、为空等 * 数字字段 — 大于、小于、范围等 * 选择字段 — 包含指定选项 * 日期字段 — 日期范围筛选 ### 时间范围 快速按时间筛选: | 快捷选项 | 说明 | | ------ | ------ | | 今天 | 当天的提交 | | 昨天 | 昨天的提交 | | 最近 7 天 | 过去一周 | | 上周 | 上一个自然周 | | 本月 | 当月的提交 | | 上月 | 上一个自然月 | | 本季度 | 当季度的提交 | | 本年 | 当年的提交 | ### 全文搜索 输入关键词搜索所有字段内容。 ## 数据操作 ### 新增数据 手动添加一条新的提交记录。 ### 编辑数据 修改已提交数据的字段值。 ### 删除数据 删除选中的提交记录。 * 支持单条删除 * 支持批量删除 ### 打印数据 打印单条或多条提交记录。 * 使用默认打印模板 * 使用自定义打印模板 ## 导入与导出 ### 导出数据 将提交数据导出为文件: * **Excel (XLSX)** — 保留格式的电子表格 * **CSV** — 通用逗号分隔格式 导出选项: * 导出当前页 * 导出选中记录 * 导出全部数据 * 自定义导出列 ### 导入数据 从外部文件导入数据到表单。 ### 下载附件 批量下载提交中的文件附件。 ## 统计分析 ### 提交统计 * **总提交数** — 累计提交数量 * **每日趋势** — 每日提交数量趋势图 * **完成率** — 表单填写完成率 ### 字段分析 针对每个字段生成统计图表: * **选择题** — 饼图/柱状图展示选项分布 * **数字字段** — 平均值、最大值、最小值、中位数 * **评分字段** — 评分分布和平均分 * **NPS** — 净推荐值计算和分布 ### 图表类型 * 柱状图 * 饼图 / 环形图 * 折线图 * 热力图 ### 公开统计 可以将统计页面公开分享,无需登录即可查看。 ## 数据回复 开启回复功能后,可以对每条提交进行回复和评论: * 文本回复 * 回复通知提醒 ## 权限控制 数据管理支持精细的权限控制: | 权限 | 说明 | | -------- | ----------- | | **查看详情** | 查看提交数据的详细内容 | | **新增** | 手动添加数据 | | **导入** | 从文件导入数据 | | **导出** | 导出数据到文件 | | **下载** | 下载附件文件 | | **查询** | 搜索和筛选数据 | | **打印** | 打印数据记录 | ## 下一步 * [考试测评](/docs/exam) — 了解考试评分和排名功能 * [团队协作](/docs/collaboration) — 邀请团队成员共同管理数据 --- # 考试测评 (https://mobyform.com/zh/docs/exam) ## 考试测评 Mobyform 的考试模式让你轻松创建在线考试、知识测评和练习题,支持自动评分、排名和成绩分析。 ## 创建考试 1. 新建表单时选择 **「考试表单」** 类型 2. 添加题目字段(单选、多选、填空等) 3. 在「考试设置」中配置评分规则 4. 发布考试 ## 考试设置 ### 评分配置 * **自动评分** — 系统根据正确答案自动打分 * **手动评分** — 由管理员手动批改主观题 * **混合评分** — 客观题自动评分 + 主观题手动评分 ### 答案设置 为每道题设置正确答案和分值: * **正确答案** — 设置标准答案 * **题目分值** — 每题的分数 * **答案解析** — 提供答案解释(可选) ### 考试行为 * **显示正确答案** — 提交后是否显示正确答案 * **显示答案解析** — 是否显示解析说明 * **显示得分** — 提交后立即显示分数 * **允许多次作答** — 是否允许重复考试 * **限时设置** — 设置考试时长限制 * **题目乱序** — 随机打乱题目顺序 * **选项乱序** — 随机打乱选项顺序 ## 成绩管理 ### 自动评分 提交后系统自动计算得分: * 客观题(单选、多选、判断)自动批改 * 支持多选题部分正确给分 ### 手动评分 管理员手动批改主观题: 1. 进入「数据管理」页面 2. 点击需要批改的提交 3. 逐题评分 4. 提交评分结果 ### 成绩查询 用户可以查询自己的考试成绩: * 总分和得分 * 每题的对错情况 * 正确答案对比 ## 排名系统 ### 成绩排行榜 按分数自动生成排名: * 总分排名 * 按提交时间排序 * 可公开发布排行榜 ### 公开排名 将排行榜公开,所有人都可以查看。 ## 成绩分析 ### 统计概览 * **平均分** — 所有参与者的平均得分 * **最高分 / 最低分** — 分数极值 * **及格率** — 达到及格分数线的比例 * **分数分布** — 各分数段人数统计 ### 题目分析 * **正确率** — 每道题的正确率 * **得分率** — 每道题的平均得分率 * **区分度** — 题目区分度分析 ## 评价等级 可以设置分数对应的评价等级: | 分数段 | 评价 | | ------ | --- | | 90-100 | 优秀 | | 80-89 | 良好 | | 70-79 | 中等 | | 60-69 | 及格 | | 0-59 | 不及格 | ## 题库 ### 题库管理 建立题目库,方便复用: * 创建题库分类 * 批量导入题目 * 从题库快速添加到考试 ### 题目类型 * 单选题 * 多选题 * 判断题 * 填空题 * 简答题 ## 下一步 * [模板](/docs/templates) — 使用考试模板快速创建 * [数据管理](/docs/data-management) — 管理考试提交数据 --- # 常见问题 (https://mobyform.com/zh/docs/faq) ## 常见问题 在这里你可以找到关于 Mobyform 表单平台最常见问题的解答。 ## 账号与登录 ### 如何注册 Mobyform 账号? 访问 Mobyform 官网,点击「注册」按钮。你可以使用邮箱注册,也可以通过 Google 或 GitHub 账号快速登录。 ### 忘记密码怎么办? 在登录页面点击「忘记密码」,输入注册邮箱,系统会发送密码重置链接到你的邮箱。点击链接后设置新密码即可。 ### 可以使用社交账号登录吗? 是的,Mobyform 支持 Google 和 GitHub 社交账号登录。首次使用社交账号登录时,系统会自动创建关联账号。 ### 如何修改账号信息? 进入「设置」→「个人资料」,可以修改用户名、头像和其他个人信息。 ## 表单创建 ### 可以创建多少个表单? 根据你的套餐不同,可创建的表单数量有所不同。Free 套餐有一定数量限制,Pro 和 Business 套餐支持更多表单。具体限制请参考定价页面。 ### 有哪些表单类型? Mobyform 支持三种表单类型: * **普通表单** — 适用于问卷调查、报名登记、反馈收集等 * **考试表单** — 支持自动评分、排名和成绩分析 * **营销表单** — 用于抽奖、促销等营销活动 ### 支持哪些字段类型? Mobyform 提供 85+ 种字段类型,涵盖文本输入、选择题、日期时间、评分量表、矩阵题、文件上传、签名、地理位置、验证组件等。详细列表请查看 [字段类型](/docs/field-types) 文档。 ### 如何从模板创建表单? 点击「新建表单」→「模板库」,浏览或搜索合适的模板,点击「使用此模板」即可。模板会自动加载到编辑器中,你可以自由修改任何内容。 ### 可以复制已有的表单吗? 可以。在表单列表中右键点击表单,选择「复制」,系统会创建一份完整的表单副本,包括所有字段、逻辑和设置。 ### 表单可以设置多页吗? 可以。在编辑器中添加「分页」组件,即可将表单拆分为多个页面。支持上一页/下一页导航,还可以设置「每页一题」模式。 ## 表单设计 ### 如何设置条件逻辑? 在编辑器顶部点击「逻辑」标签,或在字段属性中点击「添加逻辑」。你可以设置根据用户回答显示/隐藏字段、设置必填/非必填切换、跳转到不同页面等。详见 [条件逻辑](/docs/form-logic)。 ### 如何自定义表单外观? 在编辑器中点击「主题」标签,可以选择预设主题或自定义颜色、字体、背景、按钮样式等。Pro 套餐还支持自定义 CSS。详见 [主题定制](/docs/theme)。 ### 能否去除 Mobyform 品牌标识? Pro 及以上套餐支持移除表单底部的 Mobyform 品牌标识。在「主题」设置中关闭品牌标识开关即可。 ### 如何添加表单封面? 在主题设置中找到「封面」选项,可以设置封面颜色、上传封面图片、添加标题和描述文字。 ### 如何设置表单水印? 在「表单设置」或「主题」中开启水印功能。支持自定义文字水印和用户名水印,防止表单页面被截图传播。 ## 发布与分享 ### 如何发布表单? 表单设计完成后,点击编辑器右上角的「发布」按钮。发布后你会获得分享链接和二维码。 ### 表单有哪些分享方式? * **链接分享** — 复制链接直接分享 * **二维码** — 下载二维码图片用于线下扫码 * **嵌入网页** — 使用 iframe 代码嵌入到你的网站 * **弹窗嵌入** — 点击按钮弹出表单 * **邮件/社交媒体** — 通过邮件或社交平台分享 ### 如何设置表单密码? 在「表单设置」→「填写设置」中开启「密码保护」,设置访问密码。用户需要输入正确密码才能查看和填写表单。 ### 可以限制谁能填写表单吗? 可以。你可以通过以下方式限制填写权限: * 密码保护 * 白名单限制 * 登录才能填写 * IP 限制 * 时间限制(设置开放和关闭时间) ### 如何设置提交截止时间? 在「表单设置」→「提交设置」中设置截止时间。到达截止时间后,表单自动停止接受提交。 ### 可以限制每人提交次数吗? 可以。在「表单设置」→「提交设置」中设置「每人限提交次数」,限制同一用户的提交次数。 ### 如何将表单嵌入我的网站? 在发布页面获取 iframe 嵌入代码,复制到你网站的 HTML 中即可。你也可以选择弹窗嵌入方式。详见 [发布与分享](/docs/publishing)。 ### 可以使用自定义域名吗? Pro 及以上套餐支持自定义域名。在「设置」→「域名」中添加你的域名,配置 DNS CNAME 记录后验证即可。详见 [自定义域名](/docs/advanced/custom-domain)。 ## 数据管理 ### 如何查看表单提交数据? 在表单详情页点击「数据」标签,可以看到所有提交的数据表格。点击任意一行可查看单条详情。 ### 如何导出数据? 在数据管理页面点击「导出」按钮,选择导出格式(Excel 或 CSV),可以导出当前页、选中记录或全部数据。 ### 可以手动添加数据吗? 可以。在数据管理页面点击「新增」按钮,手动填写并添加一条数据记录。 ### 删除的数据可以恢复吗? 删除的数据会进入回收站,可以在回收站中恢复。如果从回收站中彻底删除,则无法恢复。 ### 如何筛选数据? 数据管理页面提供多种筛选方式:按字段值筛选、按时间范围筛选、全文搜索等。可以组合多个筛选条件精确定位数据。 ### 能否批量操作数据? 可以。选中多条数据后,可以进行批量删除、批量导出等操作。 ### 如何打印数据? 在数据详情页或列表中选择「打印」,可以使用默认模板或自定义打印模板打印数据记录。 ## 考试功能 ### 如何创建在线考试? 新建表单时选择「考试表单」类型,添加题目(单选、多选、填空等),在考试设置中配置正确答案和分值。发布后即可用作在线考试。详见 [考试测评](/docs/exam)。 ### 支持哪些评分方式? * **自动评分** — 客观题(单选、多选、判断)自动批改 * **手动评分** — 主观题由管理员手动批改 * **混合评分** — 客观题自动 + 主观题手动 ### 可以设置限时考试吗? 可以。在考试设置中设置考试时长,超时后系统自动提交。 ### 可以随机出题吗? 可以。在考试设置中开启「题目乱序」和「选项乱序」,每个考生看到的题目和选项顺序都不同。还可以从题库中随机抽取指定数量的题目。 ### 如何查看考试成绩? 在数据管理页面可以查看每个考生的成绩。系统自动计算总分、排名、正确率等统计指标。 ## 团队协作 ### 如何邀请团队成员? 在「团队」页面创建组织后,通过邮件邀请、链接邀请或 Token 邀请的方式添加成员。 ### 有哪些权限角色? 组织级别有四种角色:所有者、管理员、成员、受限成员。表单级别可以通过权限组精细控制每个协作者的操作范围。详见 [团队协作](/docs/collaboration)。 ### 可以为单个表单添加协作者吗? 可以。在表单的「设置」→「协作」中添加协作者,分配不同的权限组(数据查看、数据管理、表单编辑、完全权限等)。 ### 工作区是什么? 工作区用于在组织内按项目或部门分组管理表单。你可以创建多个工作区,并为每个工作区分配不同的成员。 ## 订单与付款 ### Mobyform 表单可以直接收款吗? 目前不可以。Mobyform 表单可以收集订单详情、商品选择、数量、报名信息和跟进备注,但不会在表单内处理付款。详见 [订单表单](/docs/payment)。 ### 如果流程需要付款怎么办? 请先用 Mobyform 收集订单或报名详情,再在你现有的账单、发票或外部结账系统中完成付款。不要让填写者在普通表单字段中输入信用卡号、银行账号或其他支付凭据。 ### 如何管理订单? 在数据管理页面查看订单提交、筛选记录、导出 Excel/CSV,并通过 Webhook、Notion、Zapier、Make 或 API 工作流把数据发送到下游系统。 ## 集成 ### 支持哪些第三方集成? Mobyform 支持 22+ 平台集成,包括 Google Sheets、Notion、Slack、Airtable、Mailchimp、HubSpot、Zapier、Make 等。详见 [集成](/docs/integrations)。 ### 如何配置 Webhook? 在表单的「集成」页面选择 Webhook,输入目标 URL 和触发事件,保存后即可在表单事件发生时收到 HTTP 推送。 ### 如何使用 API? Pro 及以上套餐支持 API 访问。在「设置」→「开发者」中生成 API 密钥,使用 RESTful API 管理表单和数据。详见 [API 接口](/docs/advanced/api)。 ## 其他 ### 表单支持移动端吗? 是的。Mobyform 的所有表单都自动适配移动端,无需额外设置。编辑器中也可以切换到移动端预览查看效果。 ### 支持哪些语言? Mobyform 平台界面支持中文和英文。表单内容可以使用任何语言编写。 ### 数据安全如何保障? Mobyform 采用多层安全措施保护数据: * HTTPS 加密传输 * 数据加密存储 * GDPR 控制 * 权限控制和审计日志 * Cookie 同意管理 ### 如何联系客服? 你可以通过以下方式联系我们: * 邮件支持 * 在线客服 * 帮助文档 ### 有免费套餐吗? 是的,Mobyform 提供免费套餐,包含基础的表单创建和数据收集功能。如需高级功能(自定义域名、去品牌标识、API 等),可以升级到 Pro 或 Business 套餐。 --- # 字段类型 (https://mobyform.com/zh/docs/field-types) ## 字段类型总览 Mobyform 提供丰富的字段类型,按功能分为以下类别。 ## 基础输入 ### 单行文本 最常用的字段类型,用于收集短文本信息。 * 支持占位符提示 * 可设置最小/最大长度 * 支持正则表达式验证 * 可设置默认值 ### 多行文本 用于收集长文本内容,如意见反馈、详细描述等。 * 可设置行数 * 支持最大字符数限制 * 支持富文本编辑模式 ### 数字 专用于数字输入,自动过滤非数字字符。 * 可设置最小值/最大值范围 * 支持小数精度设置 * 支持步长设置 ### 货币 带货币符号的数字输入字段。 * 支持多种货币类型 * 自动格式化显示 ### 手机号 手机号码输入字段,支持国际格式。 ### 扫码输入 支持扫描二维码或条形码自动填入数据。 ## 选择类字段 ### 单选框 从多个选项中选择一个答案。 * 支持竖排/横排布局 * 可设置「其他」选项 * 支持选项关联逻辑跳转 ### 多选框 从多个选项中选择一个或多个答案。 * 可设置最少/最多选择数量 * 支持「全选」操作 * 支持「其他」选项 ### 下拉选择 下拉菜单形式的单选字段,适合选项较多的场景。 ### 下拉多选 下拉菜单形式的多选字段。 ### 级联选择 多级关联下拉菜单,如省/市/区选择。 * 支持自定义级联数据 * 支持多级层级 ### 图片选择 以图片形式展示选项,用户点击图片选择。 * 支持单选/多选模式 * 可设置图片大小 ### 表格选择 以表格形式展示选项。 ### 商品选择 用于选择商品或产品项目。 ## 日期与时间 ### 日期选择 选择单个日期。 * 支持多种日期格式 * 可限制可选日期范围 ### 日期时间选择 同时选择日期和时间。 ### 日期范围 选择起止日期。 ### 时间选择 仅选择时间。 ### 预约日期 用于预约场景的日期选择。 * 可设置可预约的日期范围 * 支持排除特定日期 ### 预约时段 选择预约时间段。 * 可设置时段间隔 * 支持容量限制 ## 评分与量表 ### 星级评分 星形评分字段。 * 可设置星星数量(默认 5 颗) * 支持半星评分 * 可自定义图标 ### 滑块 数值滑动条,适合范围选择。 * 可设置最小值/最大值 * 支持步长设置 * 可显示刻度标签 ### NPS 评分 Net Promoter Score 净推荐值评分(0-10)。 ### 开关 是/否 切换开关。 ## 矩阵字段 ### 矩阵填空 行列结构的文本输入。 * 自定义行标题和列标题 * 每个单元格独立填写 ### 矩阵选择 行列结构的单选/多选。 * 每行独立选择 * 支持单选/多选模式 ### 矩阵量表 行列结构的评分量表。 ### 矩阵下拉 行列结构的下拉选择。 ### 矩阵滑块 行列结构的滑块评分。 ### 水平填空 水平排列的多个输入框。 ## 文件与媒体 ### 图片上传 上传一张或多张图片。 * 可限制图片格式(JPG、PNG 等) * 可限制文件大小 * 可限制上传数量 * 支持图片预览 ### 文件上传 上传任意类型文件。 * 可限制文件格式 * 可限制文件大小 * 支持多文件上传 ### 签名 手写签名板,用于电子签名收集。 * 支持触屏手写 * 可清除重签 * 自动保存为图片 ## 地理位置 ### 省市区选择 中国行政区划选择器,支持省/市/区三级。 ### 地图定位 基于地图的位置选择。 * 支持搜索地址 * 支持拖拽定位 * 自动获取经纬度 ### 地图导航 展示位置信息,支持导航。 ## 验证与安全 ### 手机验证 发送短信验证码验证手机号真实性。 ### 验证码 自定义验证码字段。 ### 确认码 条形码/确认码字段。 ### reCAPTCHA Google reCAPTCHA 人机验证。 ### 人脸识别 通过人脸识别验证身份。 ## 展示组件 ### 标题 一级/二级/三级标题和富文本标题。 ### 描述文本 纯展示的说明性文字。 ### 分割线 视觉分隔线,用于区分表单区域。 ### 图片展示 在表单中嵌入展示图片。 ### 图片轮播 多张图片轮播展示。 ### 视频播放 嵌入视频播放器。 ### 音频播放 嵌入音频播放器。 ### PDF 查看器 嵌入 PDF 文档查看器。 ### 网页嵌入 通过 iframe 嵌入外部网页。 ### 滚动文本 滚动展示的文本内容。 ### 跑马灯 跑马灯/走马灯效果的文本展示。 ### 倒计时 倒计时组件。 ### 联系我们 预设的联系信息展示组件。 ### 超链接 可点击的链接组件。 ## 特殊字段 ### 子表单 嵌套表单,可在一个字段中收集多组重复数据。 * 支持动态添加/删除行 * 每行包含多个子字段 ### 分页 将表单分为多个页面。 ### 计算字段 基于公式自动计算值。 * 支持四则运算 * 可引用其他字段值 * 支持条件计算 ### 随机编号 自动生成随机编号。 ### 排序 拖拽排序组件。 ### 隐私同意 隐私政策确认勾选框。 ### 封面 表单封面/头图组件。 ### OCR 识别 光学字符识别,支持: * 通用文字识别 * 身份证识别 * 银行卡识别 * 营业执照识别 ## 字段通用属性 所有字段都支持以下通用配置: | 属性 | 说明 | | -------- | ------------------- | | **标签** | 字段显示名称 | | **占位符** | 输入提示文本 | | **默认值** | 预设默认值(支持固定值、动态值、公式) | | **必填** | 是否为必填字段 | | **只读** | 是否只读不可编辑 | | **隐藏** | 是否默认隐藏 | | **帮助文本** | 字段下方的补充说明 | | **列宽** | 字段占据的栅格列数 | ## 下一步 * [条件逻辑](/docs/form-logic) — 根据字段值动态控制表单行为 * [表单设置](/docs/form-settings) — 配置提交、通知等表单级设置 --- # 表单编辑器 (https://mobyform.com/zh/docs/form-editor) ## 表单编辑器概览 Mobyform 的可视化编辑器采用拖拽式设计,让你无需编写代码就能构建专业表单。 ## 编辑器布局 编辑器界面分为三个主要区域: ### 左侧面板 — 字段列表 左侧面板展示所有可用的字段组件,按类别分组: * **基础字段** — 文本输入、数字、单选、多选等 * **高级字段** — 矩阵、评分、签名、地图等 * **布局组件** — 分页、分割线、标题、描述文本 * **特殊组件** — 文件上传、手机验证、OCR 识别 从左侧面板拖拽字段到中间画布即可添加。 ### 中间区域 — 表单画布 表单画布是所见即所得的编辑区域: * 拖拽字段调整排列顺序 * 点击字段选中并编辑 * 支持多列布局 * 实时预览表单效果 ### 右侧面板 — 属性配置 选中字段后,右侧面板显示该字段的配置选项: * **基本属性** — 标签、占位符、默认值 * **验证规则** — 必填、格式校验、长度限制 * **外观设置** — 列宽、标签位置 * **高级选项** — 逻辑条件、计算公式 ## 核心操作 ### 添加字段 * **拖拽添加** — 从左侧面板拖拽到画布指定位置 * **点击添加** — 点击字段自动追加到表单末尾 * **复制字段** — 选中字段后点击「复制」按钮 ### 排序和布局 * **拖拽排序** — 直接拖拽字段上下移动 * **多列布局** — 调整字段的列宽(span)实现并排布局 * **栅格间距** — 设置列间距(gutter) ### 编辑字段 1. 点击画布上的字段选中 2. 在右侧面板修改属性 3. 修改实时反映在画布上 ### 删除字段 * 选中字段后点击「删除」按钮 * 删除的字段进入回收站,可恢复 ### 快捷键 | 快捷键 | 操作 | | -------- | ---- | | `Ctrl+Z` | 撤销 | | `Ctrl+Y` | 重做 | | `Ctrl+C` | 复制字段 | | `Ctrl+V` | 粘贴字段 | | `Ctrl+X` | 剪切字段 | | `Delete` | 删除字段 | ## 表单配置 ### 基本设置 * **表单标题** — 设置表单名称 * **表单描述** — 添加描述说明 * **表单大小** — 小 / 默认 / 大 * **标签位置** — 上方 / 左侧 / 右侧 * **标签宽度** — 自定义标签宽度 * **显示序号** — 字段自动编号 * **显示必填星号** — 必填字段标记 \* ### 按钮配置 * 自定义提交按钮文案 * 显示/隐藏重置按钮 * 按钮对齐方式(左 / 中 / 右) ### 主题标签 使用 **「主题」** 标签控制表单的视觉体验: * 为当前表单设置颜色、字体、输入框样式、按钮样式、封面页、Logo、页脚、水印和自定义 CSS。 * 按 **「全部」**、**「我的」**、**「公共」** 浏览主题库。 * 按主题名称或分类搜索主题。 * 确认后应用主题;应用主题只会替换视觉样式。 * 将当前样式保存为 **「我的主题」**,以后复用到其他表单。 ### 分页 使用「分页」组件将长表单拆分为多个页面: * 每页独立验证 * 支持上一页/下一页导航 * 可设置「每页一题」模式 ## 预览 编辑器提供多种预览方式: * **桌面预览** — 查看电脑端显示效果 * **移动端预览** — 查看手机端显示效果 * **实时预览** — 编辑时实时查看变化 ## 回收站 误删的字段可以从回收站恢复: 1. 点击编辑器顶部的「回收站」图标 2. 查看已删除的字段列表 3. 点击「恢复」将字段添加回表单 ## 下一步 * [字段类型](/docs/field-types) — 详细了解每种字段 * [条件逻辑](/docs/form-logic) — 设置字段显示/隐藏逻辑 * [主题定制](/docs/theme) — 自定义表单外观 * [模板](/docs/templates) - 从可复用模板创建表单 --- # 条件逻辑 (https://mobyform.com/zh/docs/form-logic) ## 条件逻辑 条件逻辑让你的表单变得智能——根据用户的回答自动显示、隐藏、启用或禁用特定字段。 ## 逻辑类型 ### 显示/隐藏 根据条件控制字段的可见性。 **示例**:当「是否有工作经验」选择「是」时,显示「工作年限」字段。 ### 启用/禁用 根据条件控制字段是否可交互。 ### 必填/非必填 根据条件动态切换字段的必填状态。 **示例**:当「联系方式」选择「邮箱」时,「邮箱地址」变为必填。 ### 跳转逻辑 根据选择的答案跳转到不同的表单页面。 **示例**:当「满意度评分」低于 3 分时,跳转到「改进建议」页面。 ## 配置逻辑 ### 进入逻辑编辑器 1. 在表单编辑器顶部菜单中点击 **「逻辑」** 标签 2. 或在字段属性面板中点击「添加逻辑」 ### 创建逻辑规则 1. 点击 **「添加逻辑」** 按钮 2. 选择 **目标字段**(要控制的字段) 3. 选择 **动作类型**(显示 / 隐藏 / 启用 / 禁用 / 必填) 4. 添加 **触发条件** ### 条件运算符 | 运算符 | 说明 | 适用字段类型 | | -------- | --------- | ------ | | **等于** | 值完全匹配 | 所有类型 | | **不等于** | 值不匹配 | 所有类型 | | **大于** | 数值大于 | 数字、日期 | | **大于等于** | 数值大于或等于 | 数字、日期 | | **小于** | 数值小于 | 数字、日期 | | **小于等于** | 数值小于或等于 | 数字、日期 | | **包含** | 文本包含指定内容 | 文本类型 | | **不包含** | 文本不包含指定内容 | 文本类型 | | **为空** | 字段值为空 | 所有类型 | | **不为空** | 字段值不为空 | 所有类型 | ### 组合条件 * **且(AND)** — 所有条件同时满足时触发 * **或(OR)** — 任一条件满足时触发 ### 多条件示例 ``` 当满足以下 [所有/任一] 条件时,[显示] 字段「详细地址」: 条件 1:「国家」等于「中国」 且 条件 2:「城市」不为空 ``` ## 使用限制 | 限制项 | 数量 | | ----------- | --- | | 每个表单最多逻辑规则数 | 200 | | 每条规则最多触发器数 | 100 | | 每个触发器最多条件数 | 100 | ## 最佳实践 * **先规划再配置** — 在添加逻辑前先画出表单流程图 * **保持简单** — 避免过于复杂的嵌套逻辑 * **充分测试** — 配置完成后使用预览模式测试所有分支 * **命名清晰** — 给字段使用有意义的标签,方便识别逻辑关系 ## 下一步 * [表单设置](/docs/form-settings) — 配置提交行为和通知 * [发布表单](/docs/publishing) — 发布并分享你的表单 --- # 表单设置 (https://mobyform.com/zh/docs/form-settings) ## 表单设置 表单设置页面提供对表单行为的全面控制,涵盖提交、通知、协作、考试等各方面配置。 ## 提交设置 ### 提交后操作 * **显示感谢消息** — 自定义提交成功提示文案 * **跳转链接** — 提交后自动跳转到指定 URL * **允许继续填写** — 提交后可再次填写 * **显示提交结果** — 让用户查看已提交的内容 ### 提交限制 * **截止时间** — 设置表单停止接受提交的日期 * **最大提交数** — 限制总提交数量 * **每人限提交次数** — 限制同一用户的提交次数 * **停留时间** — 设置最短/最长填写时间 ### 暂存草稿 开启后用户可以保存填写进度,下次继续完成。 ## 填写设置 ### 访问控制 * **公开访问** — 任何人都可以填写 * **密码保护** — 需要输入密码才能访问 * **白名单** — 仅白名单用户可以填写 * **登录才能填写** — 需要登录账号 ### 填写行为 * **自动下一题** — 选择答案后自动跳转到下一题 * **每页一题模式** — 每个页面仅显示一个问题 * **字段预填充** — 通过 URL 参数预填充字段值 ## 通知设置 ### 新提交通知 当有新数据提交时发送通知: * **邮件通知** — 发送邮件到指定邮箱 * **微信通知** — 发送微信消息通知 ### 通知触发 | 触发类型 | 说明 | | ---------- | ------------ | | **新数据提交** | 每次有新提交时通知 | | **数据修改** | 数据被修改时通知 | | **定时通知** | 在设定时间发送汇总通知 | | **日期字段触发** | 当表单日期字段匹配时通知 | ### 通知收件人 * 指定接收通知的邮箱地址 * 支持多个收件人 ## 回复设置 ### 数据回复 开启后用户可以对提交的数据进行回复和评论。 * 支持文本回复 * 回复通知 ### 数据修改 允许用户修改已提交的数据。 ## 分享设置 * **自定义分享标题** — 设置链接分享时的标题 * **自定义分享描述** — 设置链接分享时的描述 * **自定义分享图片** — 设置链接分享时的封面图 ## 水印设置 在表单页面添加水印防止截图传播: * **文字水印** — 自定义水印文字 * **用户名水印** — 自动显示填写者用户名 ## 下一步 * [主题定制](/docs/theme) — 自定义表单视觉样式 * [发布表单](/docs/publishing) — 发布并分享表单 --- # 快速开始 (https://mobyform.com/zh/docs) ## 欢迎使用 Mobyform Mobyform 是一款功能强大的在线表单构建平台,帮助你轻松创建问卷调查、考试测评、报名登记、营销活动等各类表单。无需编程基础,通过拖拽即可完成表单设计。 ## 核心功能 * **可视化编辑器** — 拖拽式表单设计,支持 85+ 种字段类型 * **条件逻辑** — 根据用户回答动态显示/隐藏字段 * **多种表单类型** — 普通表单、考试、营销表单 * **数据管理** — 实时查看、筛选、导出提交数据 * **主题定制** — 自定义颜色、字体、背景和品牌 Logo * **团队协作** — 邀请团队成员,分配权限角色 * **第三方集成** — Webhook、Google Sheets、Slack 等 22+ 集成 * **订单表单** — 收集商品选择、报名和服务请求详情 ## 快速开始步骤 ### 1. 注册账号 访问 Mobyform 官网,点击「注册」按钮。支持邮箱注册或通过 Google / GitHub 社交账号登录。 ### 2. 创建表单 登录后进入工作台,点击「新建表单」按钮: * **空白创建** — 从零开始设计表单 * **模板创建** — 从模板库选择预设模板 * **AI 创建** — 使用 AI 智能生成表单(Business 套餐) ### 3. 设计表单 进入可视化编辑器,从左侧字段面板拖拽字段到表单画布: * 配置字段属性(标签、占位符、验证规则等) * 设置条件逻辑(根据回答显示/隐藏字段) * 选择主题样式 ### 4. 发布表单 表单设计完成后,点击「发布」: * 获取分享链接或二维码 * 嵌入到你的网站 * 设置访问权限和提交限制 ### 5. 收集数据 表单发布后即可开始收集数据: * 在「数据管理」页面查看所有提交 * 使用筛选和搜索功能定位数据 * 导出数据为 Excel 或 CSV 格式 * 查看统计图表和分析报告 ## 下一步 * [创建表单](/docs/create-form) — 详细了解表单创建方式 * [表单编辑器](/docs/form-editor) — 掌握编辑器的全部功能 * [字段类型](/docs/field-types) — 浏览所有可用字段类型 --- # 集成 (https://mobyform.com/zh/docs/integrations) ## 集成 Mobyform 支持 22+ 第三方平台集成,让表单数据自动流转到你的业务工具中。 ## 集成概览 在表单编辑器中点击 **「集成」** 标签,查看和配置所有可用集成。 ## 支持的平台 ### 数据存储 | 平台 | 说明 | | ----------------- | --------------------- | | **Google Sheets** | 自动将提交数据同步到 Google 表格 | | **Notion** | 将数据推送到 Notion 数据库 | | **Airtable** | 同步数据到 Airtable 表格 | | **Excel** | 导出数据到 Excel 文件 | | **Google Drive** | 将文件附件保存到 Google Drive | | **Dropbox** | 将文件附件保存到 Dropbox | ### 通知与消息 | 平台 | 说明 | | --------- | ----------------- | | **Slack** | 新提交时发送 Slack 消息通知 | | **SMS** | 发送短信通知 | ### 营销与 CRM | 平台 | 说明 | | ------------------ | ------------------ | | **Mailchimp** | 自动添加联系人到邮件列表 | | **HubSpot** | 同步联系人到 HubSpot CRM | | **ActiveCampaign** | 同步到 ActiveCampaign | | **Salesforce** | 同步数据到 Salesforce | ### 项目管理 | 平台 | 说明 | | ---------- | -------------- | | **Trello** | 自动创建 Trello 卡片 | | **Asana** | 自动创建 Asana 任务 | | **Coda** | 同步数据到 Coda 文档 | ### 自动化 | 平台 | 说明 | | ------------- | ---------------------------- | | **Zapier** | 通过 Zapier 连接 5000+ 应用 | | **Make** | 通过 Make (Integromat) 构建自动化流程 | | **Pipedream** | 通过 Pipedream 构建数据管道 | ### 分析追踪 | 平台 | 说明 | | -------------------- | ----------- | | **Google Analytics** | 追踪表单访问和提交事件 | | **Facebook Pixel** | Meta 广告转化追踪 | ### 文档生成 | 平台 | 说明 | | ------------- | ----------------- | | **PDFMonkey** | 根据提交数据自动生成 PDF 文档 | ### 日历 | 平台 | 说明 | | ------------------- | -------- | | **Google Calendar** | 自动创建日历事件 | ## Webhook ### 什么是 Webhook Webhook 允许你在表单事件发生时向指定 URL 发送 HTTP 请求,实现自定义的数据推送。 ### 配置 Webhook 1. 进入表单 **「集成」** → **「Webhook」** 2. 输入目标 URL 3. 选择触发事件 4. 配置请求头(可选) 5. 保存 ### 触发事件 | 事件 | 说明 | | ---------------------- | -------- | | **form\_data\_add** | 新数据提交时触发 | | **form\_data\_update** | 数据被修改时触发 | | **form\_data\_delete** | 数据被删除时触发 | ### Webhook 状态 * **待处理** — 等待发送 * **成功** — 已成功投递 * **失败** — 投递失败(可重试) ### 集成日志 查看所有集成的执行记录,排查问题。 ## 字段映射 为每个集成配置字段映射: 1. 选择表单字段 2. 映射到目标平台的对应字段 3. 设置数据转换规则(可选) ## PDF 导出 将表单提交数据导出为 PDF 文档: * 使用内置 PDF 模板 * 自定义 PDF 布局 * 批量生成 PDF ## 下一步 * [高级功能](/docs/advanced) — 探索更多高级特性 * [订单表单](/docs/payment) — 了解如何收集订单详情 --- # 订单表单 (https://mobyform.com/zh/docs/payment) ## 订单表单 Mobyform 可以通过表单收集订单详情、商品选择、数量、报名选项和后续跟进信息。Mobyform 表单目前不提供在线收款能力。 ## 可以创建的场景 * 商品咨询表单 * 服务需求表单 * 活动报名表单 * 报价请求表单 * 内部采购申请表单 ## 订单表单字段 常见订单表单通常包含: * **联系信息** - 姓名、邮箱、电话、公司或收货信息 * **项目选择** - 单选、多选、下拉选择或商品样式选择字段 * **数量** - 带校验规则的数字字段 * **备注** - 用于特殊要求的多行文本 * **确认编号** - 用于后续流程的字段或生成值 ## 计算总额 如果订单需要展示总额供内部审核或线下跟进,可以使用计算字段: 1. 添加商品或服务选择字段。 2. 根据需要添加数量字段。 3. 添加计算字段,把所选项目和数量组合起来。 4. 发布前在预览中核对公式。 计算总额仅用于信息展示,不会向填写者扣款,也不会收集银行卡信息。 ## 提交流程 提交后,你可以: * 显示确认页面 * 发送邮件通知 * 将提交数据导出为 Excel 或 CSV * 在可用场景下,通过 Webhook、Notion、Zapier、Make 或 API 工作流推送到下游系统 ## 付款处理 Mobyform 目前不会在表单内处理付款。如果你的流程需要付款,请先用 Mobyform 收集订单详情,再在你现有的账单、发票或结账系统中完成付款。 不要让填写者在普通表单字段中输入信用卡号、银行账号或其他支付凭据。 ## 数据审核 使用数据管理页面审核订单提交: * 提交状态 * 项目选择和数量 * 联系信息 * 导出记录 * 后续跟进备注 ## 安全建议 * 使用 HTTPS 链接发布表单 * 只收集订单流程真正需要的数据 * 使用基于角色的权限控制团队访问 * 根据需要标记敏感字段 * 不要把支付凭据保存在表单回复中 ## 下一步 * [集成](/docs/integrations) - 将订单数据发送到下游工具 * [表单设置](/docs/form-settings) - 配置表单行为 --- # 发布与分享 (https://mobyform.com/zh/docs/publishing) ## 发布表单 表单设计完成后,点击 **「发布」** 让表单上线。 ## 发布方式 ### 公开链接 生成唯一的表单链接,任何拥有链接的人都可以填写。 * 复制链接直接分享 * 链接格式:`https://your-domain.com/s/表单key` ### 二维码 自动生成表单二维码,方便移动端扫码填写。 * 下载二维码图片 * 可自定义二维码样式 ### 嵌入网站 将表单嵌入到你的网站或应用中。 * **iframe 嵌入** — 复制 iframe 代码嵌入网页 * **弹窗嵌入** — 点击按钮弹出表单 ### 定向发布 控制谁可以访问和填写表单。 * 设置权限组 * 指定可填写的用户/部门/角色 ### 公开查询 发布一个数据查询入口,允许用户查看已提交的数据。 * 链接格式:`https://your-domain.com/q/表单key` * 可配置查询权限 ## 访问控制 ### 密码保护 设置访问密码,用户需要输入正确密码才能查看表单。 ### IP 限制 限制特定 IP 地址范围可以访问表单。 ### 白名单 仅允许白名单中的用户填写。 ### 登录限制 要求用户登录后才能填写表单。 ### 时间限制 设置表单的开放和关闭时间。 ## 分享设置 ### 自定义分享信息 在社交媒体分享时显示的信息: * **分享标题** — 链接预览标题 * **分享描述** — 链接预览描述 * **分享图片** — 链接预览封面图 ### 分享渠道 * 复制链接 * 邮件分享 * 社交媒体分享 * 二维码分享 ## 通知分享 发送通知邀请用户填写表单。 ## 数据助手 配置数据助手功能,在填写过程中辅助用户。 ## 表单状态管理 | 操作 | 说明 | | ------ | ------------- | | **发布** | 表单上线,开始接受提交 | | **暂停** | 临时停止接受提交 | | **恢复** | 重新开放提交 | | **关闭** | 归档表单,永久停止接受提交 | ## 下一步 * [数据管理](/docs/data-management) — 查看和管理收集到的数据 * [表单设置](/docs/form-settings) — 调整表单配置 --- # 模板 (https://mobyform.com/zh/docs/templates) ## 模板 模板可以让你基于成熟结构创建表单,而不是从空白画布开始。模板可以把字段、布局、逻辑和样式带入一个新的可编辑表单。 ## 公共模板库 公共模板库包含当前工作区可使用的模板。 ### 浏览模板 1. 点击 **「新建表单」**,打开 **「模板库」**。 2. 按公共分类浏览,或按模板名称搜索。 3. 打开模板预览,在使用前检查表单内容。 4. 点击 **「使用」**,从模板创建新表单。 新表单会在当前工作区上下文中创建,并自动进入编辑器。 ### 模板卡片 模板卡片可以展示: * 封面图或默认预览 * 分类标识 * 模板名称 * 预览操作 * 使用操作,以及创建过程中的加载状态 ## 从模板创建表单 使用模板后,得到的是一个普通的可编辑表单。你可以: * 添加、删除、复制或重新排序字段。 * 修改字段标签、选项、校验和逻辑。 * 调整主题和表单设置。 * 准备完成后发布表单。 使用模板不会锁定表单,它只是给你一个更快的起点。 ## 保存为模板 当你希望以后复用某个表单结构时,可以将它保存为模板。 1. 在表单管理中打开表单操作菜单。 2. 选择 **「另存为模板」**。 3. 上传可选封面图。 4. 输入模板名称。 5. 添加可选描述。 6. 选择分类,或保持未分类。 7. 决定保存为私有模板还是公共模板。 8. 保存。 封面图支持 PNG、JPG 和 JPEG,最大 5 MB。建议上传封面图,这样模板卡片更容易识别。 ## 公共模板和私有模板 Mobyform 会区分公共可复用模板和个人模板。 * **私有模板** 保存在你的个人模板库中。 * **公共模板** 会以公共归属保存,并且只能使用公共分类。 * 保存私有模板时,可以同时创建个人分类。 * 如果模板切换为公共模板,而当前选中的是个人分类,系统会将分类重置为未分类。 这条规则可以让公共模板分类保持干净,也避免个人分类出现在共享模板库中。 ## 我的模板 使用 **「我的模板」** 管理你自己保存的模板。 你可以: * 按名称搜索模板。 * 预览已保存模板。 * 从个人模板创建新表单。 * 删除不再需要的模板。 从个人模板创建表单时,也会使用当前工作区上下文,并进入编辑器。 ## 模板分类 分类可以让大型模板库更容易浏览。 * 公共模板库展示公共分类。 * 私有模板可以使用公共分类、个人分类或未分类。 * 公共模板只能使用公共分类或未分类。 * 拥有管理权限的用户可以创建、编辑和删除公共模板分类。 ## 导入和导出 在需要跨环境迁移表单配置时,可以使用 JSON 导出或导入相关工作流。导入后应先检查表单内容,再发布给填写者。 ## 下一步 * [创建表单](/docs/create-form) - 了解所有创建方式 * [如何保存表单模板](/docs/guides/save-form-template) - 将表单保存为可复用模板 * [主题定制](/docs/theme) - 将视觉设计保存为可复用主题 * [团队协作](/docs/collaboration) - 与团队协作 --- # 主题定制 (https://mobyform.com/zh/docs/theme) ## 主题定制 Mobyform 的主题能力分为两个工作流: * 在 **主题设计器** 中调整当前表单的视觉样式。 * 在 **主题库** 中应用公共主题或个人主题。 应用主题只会替换视觉样式,不会修改字段、逻辑规则、发布设置或已收集的数据。 ## 主题设计器 在表单编辑器中打开 **「主题」** 标签,即可调整当前表单。 ### 视觉样式 * **配色**:主题色、页面背景、内容背景、问题文字和答案文字。 * **对比度保护**:检测可读性不足的文字颜色,并提供快速修正。 * **字体系统**:设置问题和答案字号,也可以通过字体选择器选择自定义字体。 * **视觉效果**:设置输入框灰度、输入框样式和按钮样式预设。 ### 内容显示 * 显示或隐藏表单标题、描述和表单编号。 * 预览内置字段文案使用的表单语言。 * 在 LTR 和 RTL 之间切换文字方向,适配多语言表单。 ### 布局结构 * **封面页**:启用颜色或图片封面,编辑封面内容,并设置通过按钮或滚动进入表单。 * **页眉**:添加 Logo、设置 Logo 对齐方式、添加页眉装饰图,并选择表单布局。 * **页脚和提交按钮**:显示或隐藏提交按钮,设置按钮文案、尺寸、圆角、颜色、间距和对齐方式。 * **底部说明**:在表单底部补充说明文字。 * **Powered by**:在套餐允许时隐藏 Mobyform 品牌标识。 ### 高级设置 * 当表单要求登录填写时,可在顶部显示填写者信息。 * 添加文字水印,或在水印中包含填写者用户名。 * 上传 CSS 文件,或直接粘贴自定义 CSS。 * 使用内置 CSS 参考选择器,例如 `.mobyform-form`、`.mobyform-field`、`.mobyform-cover`、`.mobyform-button`、`.mobyform-input` 以及字段类型选择器。 自定义字体和高级主题能力可能需要付费套餐。 ## 主题库 当你不想从零调整样式时,可以从主题库复用已有主题。 ### 浏览主题 1. 打开表单编辑器。 2. 进入 **「主题」**。 3. 打开主题库面板。 4. 浏览 **「全部」**、**「我的」** 或 **「公共」** 主题。 5. 按分类筛选,或按主题名称、分类名称搜索。 主题库只展示包含真实可复用配置的主题。空配置或占位主题不会显示。 ### 应用主题 1. 选择主题卡片。 2. 查看预览、来源标识和分类。 3. 点击 **「应用」**。 4. 确认应用。 确认步骤很重要:应用主题会更新表单视觉样式,但不会改变表单内容和行为。 ## 保存为我的主题 当你希望以后复用当前样式时,可以将其保存为个人主题。 1. 在主题设计器中调整好表单样式。 2. 打开主题库面板。 3. 选择 **「保存为我的主题」**。 4. 输入主题名称。 5. 选择分类,或保持未分类。 6. 保存。 主题名称必填,最长 120 个字符。保存时也可以新建个人分类。保存弹窗会根据当前颜色和布局生成预览卡片。 ## 主题分类 主题分类用于管理可复用样式。 * **公共分类**:由有权限的用户管理,供公共主题使用。 * **个人分类**:属于当前账号,用来整理自己的主题。 * **未分类**:不需要分类时可以使用。 拥有主题管理权限的用户,可以在管理页面创建、编辑、删除公共主题和公共主题分类。 ## 安全说明 * 主题预览图必须使用安全图片地址,支持 HTTP、HTTPS 和 blob 地址。 * 不安全的图片协议和无效 CSS 颜色值会在主题预览中被忽略。 * 自定义 CSS 会影响公开表单体验,发布前应检查桌面端和移动端预览。 ## 下一步 * [表单编辑器](/docs/form-editor) - 了解主题标签在编辑器中的位置 * [如何复用主题](/docs/guides/reuse-theme) - 保存并应用可复用主题 * [发布表单](/docs/publishing) - 发布并分享你的表单 * [表单设置](/docs/form-settings) - 配置表单行为 --- # AI 路线图 (https://mobyform.com/zh/docs/advanced/ai) ## AI 路线图 AI 辅助表单生成在 Mobyform 路线图中,但目前不是已经上线的自助功能。这个页面说明产品方向,方便团队评估未来能力,而不是把它当作当前可用的套餐权益。 ## 规划能力 规划中的 AI 工作流预计会帮助: * 根据自然语言描述生成表单初稿 * 为常见数据收集模式建议字段类型 * 起草更清晰的标签、占位符和说明文字 * 为选择题字段建议选项列表 * 帮助团队优化过长或不够清晰的问题 ## 预期流程 上线后,AI 创建流程仍应让人工编辑保持控制: 1. 描述你想创建的表单。 2. 审核生成的初稿。 3. 在可视化编辑器中调整字段、标签、校验和逻辑。 4. 发布前预览表单。 AI 生成的初稿可能仍需要人工审核业务规则、法律文本、可访问性和敏感数据处理。 ## 可用性 AI 表单生成目前不是确定的套餐权益。若你想讨论路线图、Beta 访问或未来 AI 工作流是否适合你的场景,请联系团队。 ## 下一步 * [表单编辑器](/docs/form-editor) - 了解用于微调表单的编辑器 * [字段类型](/docs/field-types) - 查看可用字段组件 --- # API 接口 (https://mobyform.com/zh/docs/advanced/api) ## API 接口 Mobyform 提供 RESTful API,让开发者通过编程方式管理表单、读取数据和实现自定义集成。 > 需要 Pro 及以上套餐 ## 认证 ### API 密钥 1. 进入 **「设置」** → **「开发者」** 2. 点击 **「生成 API 密钥」** 3. 复制并妥善保管密钥 ### 使用方式 在请求头中携带 API 密钥: ``` Authorization: Bearer YOUR_API_KEY ``` ### 密钥管理 * 创建多个 API 密钥 * 为密钥设置权限范围 * 随时撤销密钥 * 查看密钥使用情况 ## 主要 API ### 表单管理 | 接口 | 方法 | 说明 | | ----------------- | ------ | ------ | | `/api/forms` | GET | 获取表单列表 | | `/api/forms/:key` | GET | 获取表单详情 | | `/api/forms` | POST | 创建表单 | | `/api/forms/:key` | PUT | 更新表单 | | `/api/forms/:key` | DELETE | 删除表单 | ### 表单数据 | 接口 | 方法 | 说明 | | -------------------------- | ------ | -------- | | `/api/forms/:key/data` | GET | 获取提交数据列表 | | `/api/forms/:key/data/:id` | GET | 获取单条数据详情 | | `/api/forms/:key/data` | POST | 新增提交数据 | | `/api/forms/:key/data/:id` | PUT | 更新提交数据 | | `/api/forms/:key/data/:id` | DELETE | 删除提交数据 | ### 数据查询参数 | 参数 | 类型 | 说明 | | -------- | ------ | -------------- | | `page` | number | 页码 | | `size` | number | 每页数量 | | `sort` | string | 排序字段 | | `order` | string | 排序方向(asc/desc) | | `filter` | object | 筛选条件 | ## Webhook ### 配置 Webhook 通过 API 或管理面板配置 Webhook: ```json { "url": "https://your-server.com/webhook", "events": ["form_data_add", "form_data_update", "form_data_delete"], "headers": { "X-Custom-Header": "value" } } ``` ### Webhook 事件 | 事件 | 触发时机 | | ------------------ | ----- | | `form_data_add` | 新数据提交 | | `form_data_update` | 数据被修改 | | `form_data_delete` | 数据被删除 | ### Webhook 请求体 ```json { "event": "form_data_add", "formKey": "abc123", "data": { "id": "data_001", "fields": { "name": "张三", "email": "zhangsan@example.com" }, "createdAt": "2024-01-15T10:30:00Z" } } ``` ### 验证 Webhook 验证 Webhook 请求的合法性,确保来自 Mobyform: * 检查请求来源 IP * 验证签名头(如果配置) ## 速率限制 API 请求受速率限制保护: | 套餐 | 限制 | | -------------- | ---------- | | **Pro** | 1,000 次/月 | | **Business** | 10,000 次/月 | | **Enterprise** | 自定义 | 超过限制后会返回 `429 Too Many Requests`。 ## 错误处理 ### HTTP 状态码 | 状态码 | 说明 | | ----- | ------------- | | `200` | 请求成功 | | `201` | 创建成功 | | `400` | 请求参数错误 | | `401` | 未授权(API 密钥无效) | | `403` | 权限不足 | | `404` | 资源不存在 | | `429` | 请求过于频繁 | | `500` | 服务器内部错误 | ### 错误响应格式 ```json { "error": { "code": "INVALID_REQUEST", "message": "描述错误原因" } } ``` ## 代码示例 ### cURL — 获取表单列表 ```bash # 分页获取所有表单 curl -X GET "https://api.mobyform.com/api/forms?page=1&size=10" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" ``` ### JavaScript/Node.js — 获取表单数据 ```javascript // 获取指定表单的提交数据 const response = await fetch( 'https://api.mobyform.com/api/forms/abc123/data?page=1&size=20', { method: 'GET', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, } ); const result = await response.json(); console.log(`提交总数: ${result.total}`); console.log('数据:', result.data); ``` ### Python — 创建表单提交 ```python import requests # 向表单提交数据 url = "https://api.mobyform.com/api/forms/abc123/data" headers = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json", } payload = { "fields": { "name": "李四", "email": "lisi@example.com", "feedback": "产品体验很棒!" } } response = requests.post(url, json=payload, headers=headers) print(f"状态码: {response.status_code}") print(f"创建结果: {response.json()}") ``` ## 分页 所有列表接口均支持通过 `page` 和 `size` 查询参数进行分页。 * `page` — 要获取的页码(从 1 开始) * `size` — 每页返回的条目数(默认:20,最大:100) **请求示例:** ``` GET /api/forms?page=2&size=10 ``` **响应示例:** ```json { "data": [...], "total": 56, "page": 2, "size": 10, "totalPages": 6 } ``` > 如果未提供分页参数,API 默认使用 `page=1`、`size=20`。 ## 错误码 API 在响应体中使用结构化错误码,帮助你以编程方式处理错误: | 错误码 | 名称 | 说明 | | ----------------------- | ------ | --------------- | | `INVALID_REQUEST` | 无效请求 | 请求体或参数格式不正确 | | `AUTHENTICATION_FAILED` | 认证失败 | API 密钥缺失、无效或已过期 | | `PERMISSION_DENIED` | 权限不足 | API 密钥没有所需的权限范围 | | `RESOURCE_NOT_FOUND` | 资源不存在 | 请求的表单、提交或资源不存在 | | `RATE_LIMITED` | 请求频率超限 | 已超过允许的请求次数 | | `VALIDATION_ERROR` | 校验错误 | 提交的数据未通过字段校验规则 | | `INTERNAL_ERROR` | 内部错误 | 服务器发生意外错误,请稍后重试 | ## Webhook 签名验证 配置 Webhook 密钥后,Mobyform 会使用 **HMAC-SHA256** 对每次 Webhook 请求的内容进行签名。签名会通过 `X-Webhook-Signature` 请求头发送。你应当验证此签名以确认请求的真实性。 ### Node.js 验证 ```javascript const crypto = require('crypto'); function verifyWebhookSignature(payload, signature, secret) { const expectedSignature = crypto .createHmac('sha256', secret) .update(payload, 'utf8') .digest('hex'); return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(expectedSignature) ); } // 在 Express 处理器中使用 app.post('/webhook', (req, res) => { const signature = req.headers['x-webhook-signature']; const rawBody = JSON.stringify(req.body); if (!verifyWebhookSignature(rawBody, signature, 'YOUR_WEBHOOK_SECRET')) { return res.status(401).send('签名无效'); } // 处理 Webhook 事件 console.log('已验证事件:', req.body.event); res.status(200).send('OK'); }); ``` ### Python 验证 ```python import hmac import hashlib def verify_webhook_signature(payload: bytes, signature: str, secret: str) -> bool: expected = hmac.new( secret.encode('utf-8'), payload, hashlib.sha256 ).hexdigest() return hmac.compare_digest(expected, signature) # 在 Flask 处理器中使用 @app.route('/webhook', methods=['POST']) def handle_webhook(): signature = request.headers.get('X-Webhook-Signature', '') if not verify_webhook_signature(request.data, signature, 'YOUR_WEBHOOK_SECRET'): return '签名无效', 401 event = request.json print(f"已验证事件: {event['event']}") return 'OK', 200 ``` ## 最佳实践 * **妥善保管密钥** — 不要将 API 密钥暴露在前端代码中 * **处理错误** — 实现完善的错误处理和重试逻辑 * **遵守速率限制** — 合理控制请求频率 * **使用 Webhook** — 优先使用 Webhook 获取实时通知,而非轮询 API ## 下一步 * [自定义域名](/docs/advanced/custom-domain) — 配置自己的域名 * [集成](/docs/integrations) — 使用内置集成无需编码 --- # 自定义域名 (https://mobyform.com/zh/docs/advanced/custom-domain) ## 自定义域名 自定义域名功能让你使用自己的域名(如 `forms.yourcompany.com`)来托管表单,提升品牌专业度。 > 需要 Pro 及以上套餐 ## 设置自定义域名 ### 添加域名 1. 进入 **「设置」** → **「域名」** 2. 点击 **「添加域名」** 3. 输入你的域名(如 `forms.yourcompany.com`) ### DNS 配置 添加域名后,需要在你的 DNS 提供商处配置 CNAME 记录: | 记录类型 | 主机记录 | 记录值 | | ----- | ----- | --------- | | CNAME | forms | 平台提供的目标地址 | ### 验证域名 1. 完成 DNS 配置后,返回域名设置页面 2. 点击 **「验证」** 3. 系统检查 DNS 配置是否正确 4. 验证通过后域名生效 ### SSL 证书 域名验证通过后,系统自动为你的域名配置 SSL 证书,确保 HTTPS 安全访问。 ## 使用自定义域名 ### 表单链接 配置完成后,表单链接将使用你的自定义域名: * 原链接:`https://build.mobyform.com/s/form-key` * 自定义:`https://forms.yourcompany.com/s/form-key` ### 域名分配 可以为不同表单分配不同的域名(如果你添加了多个域名)。 ## 域名管理 ### 域名状态 | 状态 | 说明 | | -------- | ---------- | | **待验证** | DNS 配置尚未验证 | | **已激活** | 域名正常使用中 | | **验证失败** | DNS 配置有误 | | **已禁用** | 域名已被禁用 | ### 修改配置 * 更新域名设置 * 切换默认域名 * 重新验证 DNS ### 删除域名 不再使用的域名可以删除: 1. 确认没有表单使用该域名 2. 在域名列表中点击「删除」 3. 确认删除 ## 域名配额 | 套餐 | 自定义域名数量 | | -------------- | ------- | | **Free** | 不支持 | | **Pro** | 5 个 | | **Business** | 不限 | | **Enterprise** | 不限 | ## 注意事项 * DNS 配置生效可能需要最多 48 小时 * 确保 CNAME 记录正确指向平台地址 * 删除域名前确保没有活跃表单使用 * SSL 证书自动续签,无需手动操作 ## 下一步 * [主题定制](/docs/theme) — 配合自定义域名打造品牌一致体验 * [发布表单](/docs/publishing) — 使用自定义域名分享表单 --- # 维度评价 (https://mobyform.com/zh/docs/advanced/dimension) ## 维度评价 维度评价功能允许你为表单设置多个评价维度,对每次提交进行多角度评估,生成综合分析报告。 ## 应用场景 * **人才测评** — 从专业能力、沟通能力、团队协作等多维度评估候选人 * **课程评价** — 从教学内容、讲师水平、课程组织等维度评价课程 * **产品评估** — 从功能、体验、性价比等维度评估产品 * **绩效考核** — 从工作成果、工作态度、创新能力等维度考核员工 ## 配置维度 ### 进入维度编辑器 1. 在表单编辑器中点击 **「维度」** 标签 2. 进入维度配置页面 ### 创建维度 1. 点击 **「添加维度」** 2. 输入维度名称(如「专业能力」) 3. 设置维度权重(百分比) 4. 关联表单字段到该维度 ### 维度权重 为每个维度分配权重,所有维度权重之和为 100%: | 维度 | 权重 | | ---- | --- | | 专业能力 | 40% | | 沟通表达 | 30% | | 团队协作 | 30% | ### 评分标准 为每个维度设置评分标准和等级: * **分数范围** — 每个维度的分数范围 * **等级划分** — 优秀、良好、中等、及格、不及格 * **评价建议** — 每个等级对应的评价文字 ## 评估结果 ### 自动计算 系统根据字段值和维度权重自动计算评估结果: * 各维度得分 * 加权总分 * 等级评定 * 评价建议 ### 结果报告 生成详细的评估报告: * **雷达图** — 多维度得分可视化 * **分维度分析** — 每个维度的详细分析 * **综合评价** — 整体评估结论 * **改进建议** — 基于薄弱维度的改进建议 ### 公开结果 可以将评估结果页面公开,供被评估者查看。 ## 批量评估 支持批量查看和对比多个提交的维度评估结果。 ## 下一步 * [抽奖](/docs/advanced/lottery) — 了解抽奖活动功能 * [数据管理](/docs/data-management) — 管理评估数据 --- # GDPR 控制 (https://mobyform.com/zh/docs/advanced/gdpr) ## GDPR 控制 Mobyform 提供面向 GDPR 工作流的控制能力,帮助团队管理隐私告知、访问、留存、数据主体请求和审计记录。这些控制可以支持你的合规工作,但不会自动让每个表单或组织变成 GDPR 合规。 ## 隐私设置 ### 表单级隐私 在表单设置中配置隐私选项: * **隐私同意** - 添加隐私政策确认字段 * **数据用途说明** - 告知用户数据收集目的 * **Cookie 同意** - Cookie 使用确认 ### 敏感字段标记 标记包含敏感信息的字段: * 个人身份信息,如姓名、证件号等 * 联系信息,如邮箱、手机号等 * 财务信息,如银行卡号等 * 健康信息 * 位置信息 被标记的敏感字段会获得额外访问控制。 ## 数据主体权利 ### 数据访问请求 用户可以请求访问自己的个人数据: 1. 用户提交数据访问请求 2. 管理员审核请求 3. 导出用户相关数据 4. 提供给用户 ### 数据删除请求 用户可以请求删除自己的个人数据: 1. 用户提交删除请求 2. 管理员审核请求 3. 执行数据删除 4. 确认删除完成 ### 数据更正 用户可以请求更正不准确的个人数据。 ### 数据限制 用户可以请求限制对其数据的处理。 ### 反对权 用户可以反对特定数据处理活动。 ## 数据留存 ### 留存策略 设置数据留存周期: * **永久** - 数据不会自动删除 * **自定义留存周期** - 到期后自动删除 * **处理后删除** - 数据处理完成后删除 ### 自动清理 配置自动清理规则,按计划删除过期数据。 ## 数据保护影响评估(DPIA) 针对高风险数据处理进行影响评估: * 评估数据处理的必要性 * 识别风险和影响 * 制定缓解措施 * 记录评估结果 ## 数据泄露管理 ### 泄露响应 处理数据泄露的流程: 1. 记录泄露事件 2. 评估影响范围 3. 通知受影响用户 4. 在需要时向监管机构报告 5. 实施补救措施 ### 泄露记录 记录所有数据泄露事件: * 泄露和发现时间 * 受影响的数据类型 * 受影响用户数量 * 已采取的措施 ## 合法处理依据 设置数据处理的合法依据: | 类型 | 说明 | | -------- | -------- | | **同意** | 用户明确同意处理 | | **合同** | 为履行合同而处理 | | **法定义务** | 法律要求的处理 | | **合法利益** | 基于正当商业利益 | | **公共利益** | 为公共利益而处理 | | **重大利益** | 保护用户重大利益 | ## 审计日志 隐私相关操作会自动记录: * 数据访问记录 * 数据修改记录 * 删除操作记录 * 权限变更记录 * 导出操作记录 ## 下一步 * [API](/docs/advanced/api) - 了解开发者 API * [协作](/docs/collaboration) - 管理数据访问权限 --- # 高级功能 (https://mobyform.com/zh/docs/advanced) ## 高级功能 Mobyform 提供一系列高级功能,满足企业级和专业场景需求。 ## 功能概览 * [维度评价](/docs/advanced/dimension) — 多维度评估体系,支持权重评分和结果分析 * [抽奖](/docs/advanced/lottery) — 表单提交关联抽奖活动 * [GDPR 控制](/docs/advanced/gdpr) — 数据隐私控制和 GDPR 相关管理 * [API 接口](/docs/advanced/api) — 开发者 API 和 Webhook * [自定义域名](/docs/advanced/custom-domain) — 使用你自己的域名 * [AI 功能](/docs/advanced/ai) — AI 驱动的表单生成和智能建议 --- # 抽奖 (https://mobyform.com/zh/docs/advanced/lottery) ## 抽奖 Mobyform 的抽奖功能让你为表单添加奖品抽奖活动,用户提交表单后即可参与抽奖,提升填写积极性。 ## 应用场景 * **活动报名** — 报名即抽奖,提升参与率 * **问卷调查** — 填写问卷抽奖品,提高回收率 * **营销活动** — 促销抽奖,吸引用户参与 * **用户反馈** — 反馈有奖,鼓励用户提交 ## 创建抽奖活动 ### 配置步骤 1. 在表单发布页面,进入 **「抽奖」** 设置 2. 点击 **「创建抽奖活动」** 3. 配置活动信息和奖品 ### 活动设置 * **活动名称** — 抽奖活动标题 * **开始时间** — 活动开始日期和时间 * **结束时间** — 活动截止日期和时间 * **参与条件** — 提交表单后自动参与 ### 奖品设置 添加一个或多个奖品: * **奖品名称** — 奖品描述 * **奖品数量** — 可抽取的奖品总数 * **中奖概率** — 每次抽奖的中奖概率 * **奖品图片** — 奖品展示图片(可选) ## 抽奖流程 1. 用户填写并提交表单 2. 提交成功后显示抽奖入口 3. 用户点击参与抽奖 4. 系统随机抽取结果 5. 显示中奖或未中奖提示 ## 管理抽奖 ### 查看中奖记录 在抽奖管理页面查看所有中奖记录: * 中奖者信息 * 获得的奖品 * 中奖时间 * 关联的表单提交 ### 活动状态 | 状态 | 说明 | | ------- | -------- | | **未开始** | 活动未到开始时间 | | **进行中** | 活动正在进行 | | **已结束** | 活动已截止 | | **已关闭** | 手动关闭活动 | ## 注意事项 * 每个表单可以创建一个抽奖活动 * 抽奖与表单提交关联,每次提交可参与一次 * 奖品发完后自动停止抽奖 ## 防滥用设置 通过内置的安全机制防止欺诈或过度参与: * **基于 IP 的参与限制** — 限制同一 IP 地址在指定时间段内的抽奖次数,防止自动化滥用。 * **账号验证要求** — 要求用户在参与抽奖前验证邮箱或手机号。 * **时间限制** — 设置参与抽奖的冷却时间(例如每 24 小时一次),确保公平参与。 * **重复提交检测** — 自动检测并阻止同一用户或设备的重复表单提交。 ## 数据分析 在分析面板中跟踪抽奖活动的表现和参与数据: * **参与者与中奖者对比** — 查看参与抽奖的用户总数与中奖人数的对比。 * **奖品分配概览** — 查看各奖品的发放情况和剩余数量。 * **参与趋势** — 按日或按周监控参与率,了解用户参与规律。 * **导出中奖名单** — 下载包含中奖者联系信息和奖品详情的完整名单,用于记录存档或奖品发放。 ## 与其他功能集成 将抽奖与 Mobyform 的其他功能结合,实现更丰富的表单体验: * **GDPR 控制** — 将抽奖与 GDPR 同意字段搭配使用,让用户在参与抽奖前明确同意数据处理。 * **条件逻辑** — 使用条件逻辑规则,仅向符合特定条件的填写者展示抽奖(例如选择了特定答案或属于目标群体)。 * **Webhook 通知** — 在用户中奖时触发 Webhook 事件,实现向 CRM 工具、邮件平台或库存管理等外部系统的实时通知。 ## 下一步 * [集成](/docs/integrations) — 连接第三方服务 * [发布表单](/docs/publishing) — 了解发布和分享选项 --- # API 快速入门 (https://mobyform.com/zh/docs/guides/api-quickstart) ## API 快速入门 本指南将引导你完成第一个 Mobyform API 调用。几分钟内,你将学会列出表单、创建新表单、读取提交数据和设置 Webhook。 > 需要 Pro 及以上套餐 ## 第一步:生成 API 密钥 1. 登录 Mobyform 2. 进入 **「设置」** → **「开发者」** 3. 点击 **「生成 API 密钥」** 4. 为密钥起一个描述性名称(如 "后端集成") 5. 立即复制密钥 — 之后将不再显示 请妥善保管 API 密钥。不要将其暴露在前端代码、公共仓库或客户端应用中。 ## 第二步:发起第一个请求 使用 API 密钥列出你的表单。所有请求使用基础 URL `https://api.mobyform.com`,并需要 `Authorization` 请求头。 ### cURL ```bash curl -X GET https://api.mobyform.com/api/forms \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" ``` ### JavaScript / Node.js ```javascript const response = await fetch('https://api.mobyform.com/api/forms', { method: 'GET', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, }); const data = await response.json(); console.log(data); ``` ### Python ```python import requests response = requests.get( 'https://api.mobyform.com/api/forms', headers={ 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', } ) data = response.json() print(data) ``` ### 响应示例 ```json { "data": [ { "key": "abc123", "title": "客户反馈", "status": "published", "createdAt": "2024-06-01T08:00:00Z", "submissions": 142 }, { "key": "def456", "title": "活动报名", "status": "draft", "createdAt": "2024-06-10T14:30:00Z", "submissions": 0 } ], "total": 2, "page": 1, "size": 20 } ``` ## 第三步:通过 API 创建表单 发送 POST 请求并附带表单结构来创建新表单。 ### cURL ```bash curl -X POST https://api.mobyform.com/api/forms \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "title": "联系表单", "fields": [ { "type": "input", "label": "姓名", "required": true }, { "type": "email", "label": "邮箱地址", "required": true }, { "type": "textarea", "label": "留言内容", "required": true, "placeholder": "我们能为您做什么?" } ] }' ``` ### JavaScript / Node.js ```javascript const response = await fetch('https://api.mobyform.com/api/forms', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ title: '联系表单', fields: [ { type: 'input', label: '姓名', required: true }, { type: 'email', label: '邮箱地址', required: true }, { type: 'textarea', label: '留言内容', required: true, placeholder: '我们能为您做什么?' }, ], }), }); const form = await response.json(); console.log('创建的表单:', form.key); ``` ### Python ```python import requests import json response = requests.post( 'https://api.mobyform.com/api/forms', headers={ 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, data=json.dumps({ 'title': '联系表单', 'fields': [ {'type': 'input', 'label': '姓名', 'required': True}, {'type': 'email', 'label': '邮箱地址', 'required': True}, {'type': 'textarea', 'label': '留言内容', 'required': True, 'placeholder': '我们能为您做什么?'}, ], }) ) form = response.json() print('创建的表单:', form['key']) ``` ### 响应示例 ```json { "key": "ghi789", "title": "联系表单", "status": "draft", "createdAt": "2024-06-15T10:00:00Z", "fields": [ { "id": "field_1", "type": "input", "label": "姓名", "required": true }, { "id": "field_2", "type": "email", "label": "邮箱地址", "required": true }, { "id": "field_3", "type": "textarea", "label": "留言内容", "required": true } ] } ``` ## 第四步:读取表单提交数据 获取指定表单的提交数据,支持分页。 ### cURL ```bash curl -X GET "https://api.mobyform.com/api/forms/abc123/data?page=1&size=10" \ -H "Authorization: Bearer YOUR_API_KEY" ``` ### JavaScript / Node.js ```javascript const formKey = 'abc123'; const response = await fetch( `https://api.mobyform.com/api/forms/${formKey}/data?page=1&size=10`, { headers: { 'Authorization': 'Bearer YOUR_API_KEY', }, } ); const submissions = await response.json(); console.log(`共计: ${submissions.total} 条提交`); for (const item of submissions.data) { console.log(item.id, item.fields); } ``` ### Python ```python import requests form_key = 'abc123' response = requests.get( f'https://api.mobyform.com/api/forms/{form_key}/data', headers={'Authorization': 'Bearer YOUR_API_KEY'}, params={'page': 1, 'size': 10} ) submissions = response.json() print(f"共计: {submissions['total']} 条提交") for item in submissions['data']: print(item['id'], item['fields']) ``` ### 响应示例 ```json { "data": [ { "id": "data_001", "fields": { "姓名": "张三", "邮箱地址": "zhangsan@example.com", "留言内容": "我想了解一下定价方案。" }, "createdAt": "2024-06-15T12:00:00Z" } ], "total": 1, "page": 1, "size": 10 } ``` ### 分页参数 | 参数 | 类型 | 默认值 | 说明 | | ------- | ------ | ----------- | -------------------- | | `page` | number | 1 | 页码 | | `size` | number | 20 | 每页数量(最大 100) | | `sort` | string | `createdAt` | 排序字段 | | `order` | string | `desc` | 排序方向(`asc` 或 `desc`) | ## 第五步:设置 Webhook Webhook 在表单事件发生时实时通知你的服务器,无需轮询 API。 ### 注册 Webhook ```bash curl -X POST https://api.mobyform.com/api/webhooks \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://your-server.com/webhook/mobyform", "events": ["form_data_add", "form_data_update", "form_data_delete"], "headers": { "X-Webhook-Secret": "your-secret-value" } }' ``` ### Webhook 事件 | 事件 | 触发时机 | | ------------------ | ------- | | `form_data_add` | 收到新的提交 | | `form_data_update` | 提交数据被修改 | | `form_data_delete` | 提交数据被删除 | ### 处理 Webhook 事件 以下是一个简单的 Node.js/Express 处理传入 Webhook 事件的示例: ```javascript const express = require('express'); const app = express(); app.use(express.json()); app.post('/webhook/mobyform', (req, res) => { const secret = req.headers['x-webhook-secret']; if (secret !== 'your-secret-value') { return res.status(401).send('Unauthorized'); } const { event, formKey, data } = req.body; switch (event) { case 'form_data_add': console.log(`表单 ${formKey} 收到新提交:`, data.fields); break; case 'form_data_update': console.log(`表单 ${formKey} 的提交 ${data.id} 已更新`); break; case 'form_data_delete': console.log(`表单 ${formKey} 的提交 ${data.id} 已删除`); break; } res.status(200).send('OK'); }); app.listen(3000); ``` ## 错误处理 请求出错时,API 返回标准错误响应: ```json { "error": { "code": "INVALID_REQUEST", "message": "错误描述信息" } } ``` ### 常见错误码 | HTTP 状态码 | 错误码 | 含义 | 解决方法 | | -------- | ----------------- | -------------- | ------------------------- | | `400` | `INVALID_REQUEST` | 请求体格式错误或缺少必填字段 | 检查 JSON 结构和必填参数 | | `401` | `UNAUTHORIZED` | API 密钥缺失或无效 | 检查 `Authorization` 请求头和密钥 | | `403` | `FORBIDDEN` | API 密钥权限不足 | 在设置中检查密钥的权限范围 | | `404` | `NOT_FOUND` | 表单或提交数据不存在 | 确认表单 key 或数据 ID | | `429` | `RATE_LIMITED` | 请求过于频繁 | 降低请求频率;参见下方速率限制 | | `500` | `INTERNAL_ERROR` | 服务器内部错误 | 稍后重试;持续出现请联系支持 | ## 速率限制 | 套餐 | 月度限制 | | -------------- | ---------- | | **Pro** | 1,000 次请求 | | **Business** | 10,000 次请求 | | **Enterprise** | 自定义 | 超过限制后,API 返回 `429 Too Many Requests`。响应中包含 `Retry-After` 头,指示何时可以再次请求。 ## 下一步 * [API 接口参考](/docs/advanced/api) — 包含所有端点的完整 API 文档 * [集成](/docs/integrations) — 无需编码使用内置集成 --- # 如何创建订单表单 (https://mobyform.com/zh/docs/guides/create-order-form) ## 如何创建订单表单 本指南帮助你创建用于商品咨询、活动报名、报价请求和服务订单的表单。Mobyform 目前不会在表单内收款,因此这个流程用于收集订单详情,并在你现有的结账、发票或付款系统中完成后续计费。 ## 准备工作 * 先确认跟进或履约前需要收集哪些信息。 * 准备商品名称、服务选项、数量和必要的联系字段。 * 不要让填写者在表单字段中输入银行卡号或支付凭据。 ## 第一步:创建表单 1. 点击 **"新建表单"** -> **"空白表单"**。 2. 选择 **"普通表单"** 类型。 3. 输入标题,例如 "课程报名需求" 或 "服务订单需求"。 ## 第二步:设计表单内容 ### 客户信息 * **单行文本** - 姓名 * **手机号** - 联系电话 * **单行文本** - 邮箱地址 ### 商品或服务选择 根据场景选择合适的方式: **方式一:固定价格商品** * 使用 **"单选框"** 字段列出商品选项 * 在每个选项中标注价格,例如 "基础课程 - $99" 或 "高级课程 - $299" **方式二:商品选择组件** * 如果工作区中可用,使用 **"商品选择"** 字段 * 添加商品名称、图片、价格等信息 * 让用户选择数量 **方式三:自定义报价** * 使用文本、数字或金额样式字段收集报价输入 * 适合需要在表单外处理的定制服务请求或捐赠意向 ### 附加信息 * **多行文本** - 特殊要求或备注 * **下拉选择** - 配送方式,如适用 * **单行文本** - 收货地址,如适用 ### 使用计算字段 如果总额取决于用户选择: 1. 添加 **"计算字段"**。 2. 编写公式引用商品选择字段。 3. 让表单自动计算一个用于参考的订单总额。 ## 第三步:添加订单摘要字段 如果总额会随用户选择变化,添加计算字段,方便团队清晰审核订单。 | 字段 | 说明 | | -------- | ---------------- | | **计算总额** | 基于所选商品或服务的信息性总额 | | **订单备注** | 特殊要求、配送备注或内部处理备注 | | **确认邮箱** | 用于后续联系的邮箱地址 | | **参考编号** | 下游订单流程使用的可选编号 | ### 动态总额 如果金额根据用户选择变化: * 将金额关联到计算字段或商品样式选择字段 * 让系统根据选择计算信息性金额 * 如果需要付款,请在 Mobyform 外部完成 ## 第四步:设置提交流程 ### 提交后操作 * 显示确认消息 * 跳转到自定义感谢页或外部结账页 * 向填写者发送确认邮件 * 通知团队进行人工审核或履约 ### 提交限制 * 如果库存有限,设置最大提交数量 * 如果活动有期限,设置截止时间 ## 第五步:发布和推广 1. 发布表单并获取分享链接。 2. 将表单嵌入商品页或活动页。 3. 通过邮件和社交媒体推广。 ## 第六步:管理订单 ### 审核提交记录 在数据管理页面: * 查看所有订单提交 * 按商品、服务、状态或日期筛选 * 将订单记录导出为 Excel 或 CSV * 在工作流支持的场景下添加内部跟进备注 ### 建议状态 | 状态 | 说明 | | ------- | ------------------ | | **新建** | 已提交订单详情 | | **审核中** | 团队正在确认详情或库存 | | **已开票** | 已在 Mobyform 外部请求付款 | | **已完成** | 请求已经履约 | --- # 如何创建在线考试 (https://mobyform.com/zh/docs/guides/create-quiz) ## 如何创建在线考试 本指南将带你一步步创建一份在线考试,包括题目设计、评分配置和成绩管理。 ## 第一步:创建考试表单 1. 点击 **「新建表单」** → **「空白表单」** 2. 表单类型选择 **「考试表单」** 3. 输入考试标题,如「产品知识考核」 > 选择「考试表单」类型后,系统会自动开启评分功能。 ## 第二步:添加题目 ### 客观题 **单选题**: 1. 拖拽 **「单选框」** 到画布 2. 输入题目标题 3. 添加选项(如 A、B、C、D) 4. 在右侧面板的「考试设置」中设置正确答案和分值 **多选题**: 1. 拖拽 **「多选框」** 到画布 2. 输入题目和选项 3. 设置正确答案(可多选)和分值 4. 可选:开启「部分正确给分」 **判断题**: 1. 使用 **「单选框」**,设置两个选项:「正确」和「错误」 2. 设置正确答案和分值 ### 主观题 **填空题**: 1. 使用 **「单行文本」** 或 **「多行文本」** 2. 设置参考答案(供阅卷参考) 3. 分值设置为手动评分 **简答题**: 1. 使用 **「多行文本」** 2. 设置参考答案和答案解析 3. 由管理员手动批改评分 ### 为每道题设置分值 在字段的「考试设置」中: * **分值** — 该题的满分 * **正确答案** — 标准答案 * **答案解析** — 答案说明(可选,提交后展示给考生) ## 第三步:配置考试设置 在「设置」→「考试设置」中配置: ### 评分方式 * **自动评分** — 客观题由系统自动判分 * **手动评分** — 主观题需要管理员批改 * **混合模式** — 客观题自动 + 主观题手动 ### 考试行为 | 设置项 | 说明 | | ---------- | ---------------------- | | **限时** | 设置考试时长(如 60 分钟),超时自动提交 | | **题目乱序** | 每个考生看到的题目顺序不同 | | **选项乱序** | 每道题的选项顺序随机排列 | | **允许多次作答** | 是否允许重复考试 | | **显示得分** | 提交后是否立即显示分数 | | **显示正确答案** | 是否向考生展示正确答案 | | **显示答案解析** | 是否展示每题的解析说明 | ### 评价等级 设置分数段对应的评价: | 分数段 | 评价 | | ------ | --- | | 90-100 | 优秀 | | 80-89 | 良好 | | 70-79 | 中等 | | 60-69 | 及格 | | 0-59 | 不及格 | ## 第四步:使用题库(可选) 如果你有大量题目需要管理: 1. 进入 **「题库管理」** 2. 创建题库并添加题目 3. 在考试中选择从题库随机抽题 4. 设置抽取数量(如从 100 题中随机抽 50 题) ### 题库优势 * 每个考生的试卷不同,防止作弊 * 题目复用,减少重复工作 * 按难度分类管理 ## 第五步:发布考试 ### 访问控制 * **密码保护** — 设置考试密码,只有知道密码的人才能参加 * **白名单** — 仅允许指定人员参加 * **登录限制** — 要求考生登录账号 ### 时间控制 * 设置考试开放时间和截止时间 * 在规定时间内才能进入考试 ### 分享方式 * 复制考试链接发送给考生 * 生成二维码供考生扫码进入 * 通过邮件发送考试通知 ## 第六步:管理成绩 ### 自动评分结果 客观题提交后即可查看成绩: * 每题的对错情况 * 总分和得分率 * 排名位置 ### 手动批改 对于主观题,管理员需要手动批改: 1. 进入「数据管理」页面 2. 点击需要批改的提交记录 3. 逐题查看回答并评分 4. 提交评分结果 ### 成绩分析 在统计页面查看: * **平均分** — 所有考生的平均成绩 * **最高分 / 最低分** — 分数极值 * **及格率** — 达到及格线的比例 * **分数分布** — 各分数段人数 * **每题正确率** — 识别难题和易题 * **排名榜** — 按分数排列的考生排名 ### 公开排名 可以将排行榜公开,让所有考生查看自己的排名和成绩。 ## 防作弊措施 * **题目乱序** — 每人题目顺序不同 * **选项乱序** — 每题选项随机排列 * **随机抽题** — 从题库随机抽取 * **限时作答** — 超时自动提交 * **限制作答次数** — 防止反复尝试 ## 相关文档 * [考试测评](/docs/exam) — 考试功能完整说明 * [字段类型](/docs/field-types) — 题目使用的字段类型 * [数据管理](/docs/data-management) — 成绩数据管理 --- # 如何创建报名表单 (https://mobyform.com/zh/docs/guides/create-registration) ## 如何创建报名表单 本指南帮助你创建一份完整的报名表单,适用于活动报名、课程注册、会议登记等场景。 ## 第一步:创建表单 1. 点击 **「新建表单」** → **「空白表单」** 2. 选择 **「普通表单」** 类型 3. 输入标题,如「2024 年春季活动报名」 ## 第二步:添加报名字段 ### 基本信息 添加以下常用字段: * **单行文本** — 姓名 * **手机号** — 联系电话 * **单行文本** — 邮箱(开启邮箱格式校验) * **单选框** — 性别 * **下拉选择** — 年龄段 / 部门 / 职位 ### 活动相关信息 * **单选框** 或 **下拉选择** — 选择参加的场次/课程 * **多选框** — 感兴趣的主题 * **预约日期** — 选择参加日期 * **预约时段** — 选择时间段(设置容量限制) ### 附加信息 * **多行文本** — 备注或特殊需求 * **文件上传** — 上传证件照或相关材料 * **隐私同意** — 个人信息处理同意书 ## 第三步:设置字段验证 确保收集到有效数据: * **姓名** — 设为必填 * **手机号** — 设为必填,系统自动验证格式 * **邮箱** — 设为必填,开启格式校验 * **报名场次** — 设为必填 ### 使用条件逻辑 根据选择的场次显示不同的附加问题: * 选择「线下活动」→ 显示「饮食偏好」和「交通方式」 * 选择「线上活动」→ 显示「使用的设备类型」 ## 第四步:设置提交限制 ### 限制报名人数 在「表单设置」→「提交设置」中: * 设置 **最大提交数**(如限制 100 人报名) * 达到上限后自动关闭表单,显示「名额已满」提示 ### 防止重复报名 * 开启 **「每人限提交 1 次」** * 或使用 **「登录才能填写」** 确保每人只能报名一次 ### 设置报名时间窗口 * 在提交设置中配置开始时间和截止时间 * 未到开始时间显示「报名未开始」 * 超过截止时间显示「报名已结束」 ## 第五步:设置通知 ### 管理员通知 * 开启邮件通知,每次有新报名时收到提醒 * 设置多个收件人(如活动负责人和行政人员) ### 填写者确认 * 开启「回复设置」中的提交确认功能 * 让报名者知道报名已成功 ## 第六步:美化和发布 ### 品牌定制 * 上传活动海报作为封面 * 使用活动主题色 * 添加活动详情描述 ### 发布和推广 1. **发布表单** 获取链接 2. **生成二维码** — 印在宣传海报上 3. **嵌入网站** — 放在活动页面 4. **邮件推广** — 发送邀请邮件 ## 第七步:管理报名数据 * 在「数据」页面查看所有报名记录 * 按场次/日期筛选报名者 * 导出报名名单为 Excel * 使用打印模板打印签到表 ## 进阶技巧 ### 使用预约时段控制名额 预约时段字段支持设置每个时段的容量限制,当某个时段名额满后自动不可选。 ### 配合抽奖提升参与 使用 [抽奖功能](/docs/advanced/lottery) 为报名者提供抽奖机会,提升报名积极性。 ## 相关文档 * [表单设置](/docs/form-settings) — 配置提交限制和通知 * [发布与分享](/docs/publishing) — 多种分享方式 * [抽奖](/docs/advanced/lottery) — 报名抽奖活动 --- # 如何创建问卷调查 (https://mobyform.com/zh/docs/guides/create-survey) ## 如何创建问卷调查 本指南将带你一步步创建一份完整的问卷调查,从设计问题到收集和分析数据。 ## 第一步:新建问卷 1. 登录 Mobyform,进入工作台 2. 点击 **「新建表单」** → 选择 **「空白表单」** 3. 表单类型选择 **「普通表单」** 4. 输入问卷标题,如「客户满意度调查」 > 你也可以从模板库中选择「问卷调查」类别的模板快速开始。 ## 第二步:设计问卷结构 ### 添加开场说明 在表单顶部添加 **「描述文本」** 组件,向填写者介绍问卷的目的和预计填写时间。 ``` 感谢您参与本次客户满意度调查! 问卷大约需要 3 分钟完成。您的反馈将帮助我们改善产品和服务。 所有回答均保密处理。 ``` ### 选择合适的字段类型 根据问题类型选择合适的字段: | 问题类型 | 推荐字段 | 适用场景 | | ---- | ------------------ | ------------ | | 单选题 | **单选框** | 「您的性别」「是否满意」 | | 多选题 | **多选框** | 「您使用过哪些功能」 | | 评分题 | **星级评分** 或 **NPS** | 「请为我们的服务打分」 | | 量表题 | **矩阵量表** | 多个维度的满意度评价 | | 开放题 | **多行文本** | 「请分享您的建议」 | | 排序题 | **排序** | 「请按重要程度排列」 | ### 问卷结构建议 一份好的问卷通常包含以下部分: 1. **基本信息** — 年龄、性别、职业等(可选) 2. **核心问题** — 与调查主题直接相关的问题 3. **评价和评分** — 满意度、NPS 等量化指标 4. **开放式反馈** — 让用户自由表达意见 5. **结束语** — 感谢填写者 ## 第三步:设置条件逻辑 使用条件逻辑让问卷更加智能: **示例 1**:根据满意度评分显示不同问题 * 当「满意度评分」≤ 2 时,显示「请告诉我们哪里需要改进」 * 当「满意度评分」≥ 4 时,显示「您最喜欢的是什么」 **示例 2**:根据用户类型跳转 * 当「您是否是付费用户」选择「是」时,显示付费体验相关问题 * 选择「否」时,显示免费功能相关问题 设置方法: 1. 点击编辑器顶部的 **「逻辑」** 标签 2. 添加逻辑规则 3. 设置触发条件和目标字段 ## 第四步:美化问卷 1. 点击 **「主题」** 标签 2. 选择一个预设主题,或自定义颜色和字体 3. 上传品牌 Logo(可选) 4. 设置封面图片(可选) **设计建议**: * 使用品牌色作为主题色,保持一致性 * 避免过于花哨的背景,影响阅读 * 确保文字颜色与背景有足够对比度 ## 第五步:配置设置 ### 提交设置 * 设置感谢消息:「感谢您的参与!您的反馈对我们非常重要。」 * 开启「允许继续填写」,方便用户修改答案 ### 填写设置 * 如果需要匿名调查,保持「公开访问」 * 如果需要追踪填写者,开启「登录才能填写」 * 设置截止时间(如果有时间限制) ### 通知设置 * 开启邮件通知,每次有新提交时收到提醒 * 或设置定时汇总通知,每天收到一次统计 ## 第六步:发布和分享 1. 点击 **「发布」** 按钮 2. 复制分享链接,发送给目标人群 3. 下载二维码,张贴在线下场所 4. 如果有网站,使用 iframe 嵌入 ### 提高回收率的技巧 * 在邮件标题中说明问卷用途和所需时间 * 设置截止日期制造紧迫感 * 提供填写激励(如抽奖活动) * 多渠道分发(邮件 + 社交媒体 + 线下二维码) ## 第七步:分析数据 问卷回收后,进入「数据」页面: 1. **查看统计面板** — 总提交数、完成率、每日趋势 2. **字段分析** — 每个问题的回答分布图表 3. **交叉分析** — 对比不同群体的回答差异 4. **导出数据** — 导出 Excel 做进一步分析 ### 关注的关键指标 * **回收率** — 发出问卷 vs 完成提交的比例 * **平均填写时间** — 评估问卷长度是否合适 * **NPS 得分** — 净推荐值(如果使用了 NPS 字段) * **开放题关键词** — 用户反复提到的主题 ## 最佳实践 * **控制长度** — 问卷不宜超过 20 个问题,5-10 分钟为佳 * **避免引导性提问** — 保持问题中立客观 * **提供「其他」选项** — 选择题中加入自由填写选项 * **先易后难** — 简单问题放前面,敏感问题放后面 * **预先测试** — 发布前让 2-3 人试填,检查逻辑和体验 * **使用分页** — 长问卷使用分页避免用户疲劳 ## 相关文档 * [字段类型](/docs/field-types) — 了解所有可用字段 * [条件逻辑](/docs/form-logic) — 设置智能逻辑 * [数据管理](/docs/data-management) — 管理和分析数据 --- # 自定义域名设置 (https://mobyform.com/zh/docs/guides/custom-domain-setup) ## 自定义域名设置 本指南将帮助你配置自定义域名,让你的表单通过自有品牌 URL(如 `forms.yourcompany.com`)提供访问,而不是使用默认的 Mobyform 域名。 > 需要 Pro 及以上套餐 ## 概述 使用自定义域名后,你的表单链接变为: | 类型 | 示例 URL | | --------- | ----------------------------------------------- | | **默认** | `https://build.mobyform.com/s/your-form-key` | | **自定义域名** | `https://forms.yourcompany.com/s/your-form-key` | 这为填写者提供了专业的品牌化体验,并从表单 URL 中去除了第三方标识。 ## 第一步:进入域名设置 1. 登录 Mobyform 2. 进入 **「设置」** → **「域名」** 3. 点击 **「添加域名」** ## 第二步:输入域名 输入你要使用的域名或子域名: * **子域名(推荐)**:`forms.yourcompany.com` * **根域名**:`yourcompany.com`(需要支持扁平化 CNAME、ALIAS 或 ANAME) 推荐使用子域名,因为不会影响主网站且配置更简单。 ## 第三步:添加 DNS 记录 输入域名后,Mobyform 会显示所需的 DNS 记录。子域名使用 CNAME 记录;根域名需要 DNS 服务商支持扁平化 CNAME、ALIAS 或 ANAME。如果服务商不支持,请改用子域名。 | 域名类型 | 记录类型 | 主机名 | 目标值 | TTL | | ---- | ------------------------- | ------- | -------------------- | ---- | | 子域名 | CNAME | `forms` | `forms.mobyform.com` | 3600 | | 根域名 | 扁平化 CNAME / ALIAS / ANAME | `@` | `forms.mobyform.com` | 3600 | 具体的主机名取决于你选择的子域名。对于 `forms.yourcompany.com`,主机名为 `forms`。 ### 各 DNS 服务商配置说明 #### Cloudflare 1. 登录 Cloudflare 控制面板 2. 选择你的域名 3. 进入 **DNS** → **记录** 4. 点击 **添加记录** 5. 类型选择 **CNAME**,名称填 `forms`,目标填 `forms.mobyform.com` 6. 如果是根域名,名称填 `@`;Cloudflare 会自动扁平化 CNAME 7. 设置期间将代理状态设为 **仅 DNS**(灰色云朵图标) 8. 点击 **保存** #### GoDaddy 1. 登录 GoDaddy 账户 2. 进入 **我的产品** → 选择域名 → **DNS** 3. 在记录下方点击 **添加** 4. 类型选择 **CNAME**,主机填 `forms`,指向填 `forms.mobyform.com` 5. TTL 设为 **1 小时** 6. 点击 **保存** 如果是根域名,请使用 GoDaddy 提供的转发能力或 ALIAS/ANAME 等价能力;如果不支持,请改用 `forms.yourcompany.com` 这类子域名。 #### Namecheap 1. 登录 Namecheap 2. 进入 **域名列表** → 点击域名旁的 **管理** 3. 选择 **高级 DNS** 标签 4. 点击 **添加新记录** 5. 类型选 **CNAME 记录**,主机填 `forms`,值填 `forms.mobyform.com` 6. TTL 设为 **自动** 7. 点击对勾保存 如果是根域名,请选择 **ALIAS Record** 或其他扁平化 CNAME 选项;如果当前套餐不支持,请改用 `forms.yourcompany.com` 这类子域名。 ## 第四步:验证域名所有权 添加 DNS 记录后: 1. 返回 Mobyform 域名设置页面 2. 点击 **「验证域名」** 3. 系统检查 CNAME 记录是否正确配置 4. 验证成功后,域名状态变为 **已激活** DNS 传播可能需要几分钟到 48 小时不等。如果验证失败,请等待后重试。 ## 第五步:SSL 证书 域名验证通过后,Mobyform 自动配置免费 SSL 证书: * SSL 证书自动签发和安装 — 无需手动操作 * 配置完成后即可通过 `https://` 访问表单 * 证书到期前自动续期 ## 使用自定义域名 配置完成后,你账户下的所有表单链接都可以使用自定义域名: * 分享链接自动使用你的域名 * 二维码指向自定义域名 * 嵌入的表单可以引用自定义域名 URL * 使用默认域名的已有链接继续有效 ## 常见问题 ### 验证一直失败 * **等待 DNS 传播** — DNS 变更最长可能需要 48 小时才能全球生效。等待几小时后重试验证。 * **检查 CNAME 目标** — 确保记录指向 Mobyform 设置中显示的准确值。 * **删除冲突记录** — 如果同一主机名已有 A 记录,可能与 CNAME 冲突。添加 CNAME 前请先删除它。 * **检查拼写** — 确认主机名完全匹配(如 `forms`,而不是 `form` 或 `forms.yourcompany.com`)。 ### SSL 证书未生效 * SSL 配置只在域名验证成功后开始 * 证书签发最多需要 30 分钟 * 如果一小时后 HTTPS 仍然不可用,尝试重新验证域名 ### 表单显示安全警告 * 确保通过 `https://` 访问表单,而不是 `http://` * 如果使用 Cloudflare,将 SSL 模式设为 **Full** 或 **Full(严格)** ## 域名配额 | 套餐 | 自定义域名数量 | | -------------- | ------- | | **Free** | 不支持 | | **Pro** | 5 个 | | **Business** | 不限 | | **Enterprise** | 不限 | ## 下一步 * [自定义域名参考](/docs/advanced/custom-domain) — 域名管理和状态详情 * [发布](/docs/publishing) — 使用自定义域名分享表单 * [主题定制](/docs/theme) — 匹配你的品牌风格 --- # 如何嵌入表单到网站 (https://mobyform.com/zh/docs/guides/embed-form) ## 如何嵌入表单到网站 Mobyform 支持多种方式将表单嵌入到你的网站中,让用户无需离开你的网站即可填写表单。 ## 嵌入方式概览 | 方式 | 说明 | 适用场景 | | ------------- | --------- | -------------- | | **iframe 嵌入** | 将表单嵌入页面中 | 最常用,适合大多数网站 | | **弹窗嵌入** | 点击按钮后弹出表单 | 不占用页面空间,适合反馈收集 | | **全页嵌入** | 表单占满整个页面 | 独立的表单页面 | ## iframe 嵌入 ### 获取嵌入代码 1. 打开表单的 **「发布」** 页面 2. 选择 **「嵌入」** 选项 3. 复制 iframe 代码 ### 嵌入代码示例 ```html ``` ### 自适应高度 为了让表单高度自适应内容,可以添加以下代码: ```html ``` ### 在不同平台嵌入 #### WordPress 1. 在文章或页面编辑器中添加 **「自定义 HTML」** 块 2. 粘贴 iframe 代码 3. 预览和发布 #### React / Next.js ```jsx function FormEmbed() { return ( ``` ## 嵌入设置 ### 通过 URL 参数预填字段 你可以通过 URL 参数预先填入表单字段值: ``` https://your-domain.com/s/your-form-key?field_name=预填值&field_email=user@example.com ``` 适用场景: * 从邮件链接预填用户邮箱 * 从产品页面传递产品名称 * 从 CRM 传递客户信息 ### 自定义样式 如果需要更精细的样式控制: 1. 在表单的「主题」设置中调整样式 2. Pro 套餐支持注入自定义 CSS 3. 确保表单样式与网站整体风格一致 ## 注意事项 * **HTTPS 要求** — 嵌入表单的页面建议使用 HTTPS,避免浏览器阻止加载 * **跨域限制** — iframe 内的表单与父页面是隔离的,不能直接通信 * **移动适配** — iframe 在移动端可能需要额外的响应式处理 * **加载速度** — 首次加载需要一定时间,考虑添加加载提示 ## 常见问题 ### 表单在 iframe 中显示不完整? 检查 iframe 的 height 属性是否足够,建议设置为至少 600px 或使用百分比高度。 ### 嵌入后表单无法提交? 检查是否存在跨域限制,确保表单链接使用 HTTPS。 ### 如何在表单提交后跳转到指定页面? 在「表单设置」→「提交设置」中设置「跳转链接」,提交后自动跳转到你指定的 URL。 ## 相关文档 * [发布与分享](/docs/publishing) — 更多分享方式 * [自定义域名](/docs/advanced/custom-domain) — 使用自己的域名 * [主题定制](/docs/theme) — 调整表单样式 --- # GDPR 控制配置 (https://mobyform.com/zh/docs/guides/gdpr-setup) ## GDPR 控制配置 本指南介绍如何在 Mobyform 表单中配置可支持 GDPR 相关数据处理的隐私控制。它不是法律建议,也不保证你的组织或某个表单一定 GDPR 合规。 ## 开始之前 如果你收集欧洲经济区(EEA)个人的个人数据,GDPR 可能适用。即使你的组织不在欧盟,只要处理欧盟居民数据,也可能需要遵守相关要求。 影响表单设计的关键原则包括: * **合法性** - 收集数据必须有合法依据 * **目的限制** - 数据必须为具体、已说明的目的而收集 * **数据最小化** - 只收集必要数据 * **存储限制** - 数据留存时间不应超过必要期限 * **问责** - 你需要能够证明采取了适当实践 ## 第一步:启用隐私同意 为表单添加同意机制,让填写者明确同意数据处理。 1. 在编辑器中打开表单 2. 进入 **"表单设置"** -> **"隐私"** 3. 启用 **"隐私同意"** 4. 配置同意选项: | 设置 | 说明 | | ---------- | -------------- | | **同意复选框** | 在表单末尾添加必填复选框 | | **同意文案** | 自定义展示给填写者的同意文字 | | **隐私政策链接** | 链接到你组织的完整隐私政策 | | **服务条款链接** | 可选,链接到服务条款 | **同意文案示例**: ```text 我同意按照隐私政策中说明的方式收集和处理我的个人数据。 我理解自己可以随时撤回同意。 ``` ## 第二步:标记敏感字段 识别并标记收集敏感个人信息的字段。被标记字段会获得额外访问控制和加密保护。 1. 在表单编辑器中点击收集个人数据的字段 2. 打开字段的 **"高级设置"** 3. 启用 **"敏感字段"** 4. 选择敏感类别: | 类别 | 示例 | | ---------- | ----------- | | **个人身份** | 姓名、身份证号、护照号 | | **联系信息** | 邮箱、手机号、地址 | | **财务信息** | 银行账号、信用卡、薪资 | | **健康信息** | 病情、处方、残障信息 | | **位置数据** | GPS 坐标、家庭地址 | | **生物识别数据** | 指纹、面部识别数据 | 敏感字段会: * 在数据库中静态加密 * 在数据管理面板中脱敏显示,例如 `john***@email.com` * 默认从导出中排除,除非管理员明确包含 * 在被访问时记录日志 ## 第三步:设置数据留存策略 配置表单提交数据保留多久。 1. 进入 **"表单设置"** -> **"数据留存"** 2. 选择留存策略: | 策略 | 行为 | | --------- | -------------------------- | | **永久** | 数据不会自动删除 | | **自定义周期** | 到指定天数后自动删除,例如 90、180、365 天 | | **处理后删除** | 数据处理或导出完成后删除 | 3. 如果选择自定义周期,设置留存天数 4. 启用 **"删除前通知"**,在清理前收到提醒 到期数据在删除前可根据需要审核或延长。 ## 第四步:配置合法处理依据 说明你收集和处理数据所依据的法律基础。 1. 进入 **"表单设置"** -> **"隐私"** -> **"合法依据"** 2. 选择适用依据: | 依据 | 适用场景 | | -------- | ------------------ | | **同意** | 填写者明确同意数据处理 | | **合同** | 为履行与填写者的合同而需要数据 | | **法定义务** | 法律要求处理 | | **合法利益** | 有正当商业理由,需要进行利益平衡测试 | | **公共利益** | 处理服务于公共职能 | | **重大利益** | 为保护某人的生命安全所必需 | 对于大多数自愿回复表单,**同意** 通常是合适依据。 ## 第五步:设置数据主体请求处理 GDPR 赋予个人对其数据的权利。配置这些请求如何处理。 1. 进入 **"设置"** -> **"隐私"** -> **"数据主体请求"** 2. 启用请求入口 3. 配置各项权利的处理方式: | 权利 | 说明 | 配置 | | --------- | ------------ | -------------- | | **访问权** | 填写者可请求其数据副本 | 设置响应时限,默认 30 天 | | **删除权** | 填写者可请求删除其数据 | 启用自动删除或人工审核 | | **更正权** | 填写者可请求更正数据 | 启用自助编辑或人工审核 | | **限制处理权** | 填写者可限制数据使用方式 | 启用处理限制标记 | | **可携权** | 填写者可获得可携格式数据 | 启用 CSV/JSON 导出 | 收到数据主体请求后: 1. 系统记录请求和时间戳 2. 通知指定管理员 3. 管理员审核并处理请求 4. 向请求者发送确认 5. 在审计日志中记录操作 ## 第六步:运行 DPIA 评估 对于处理高风险数据的表单,例如大规模处理、敏感类别或系统性监控,建议进行数据保护影响评估。 1. 进入 **"设置"** -> **"隐私"** -> **"DPIA"** 2. 点击 **"新建评估"** 3. 完成评估问卷: * 描述数据处理活动 * 识别处理的必要性和比例性 * 评估对个人权利和自由的风险 * 记录缓解措施 4. 保存评估,让它进入隐私记录 ### 何时可能需要 DPIA * 收集健康或生物识别数据的表单 * 面向大量人群的大规模调研 * 将多个来源的数据组合使用的表单 * 基于表单回复进行自动化决策 ## 第七步:配置泄露通知 设置用于处理潜在数据泄露的通知。 1. 进入 **"设置"** -> **"隐私"** -> **"泄露通知"** 2. 配置通知设置: | 设置 | 说明 | | -------- | ------------------- | | **内部告警** | 向指定隐私负责人发送邮件和站内通知 | | **监管通知** | 用于在 72 小时内通知监管机构的模板 | | **主体通知** | 用于通知受影响个人的模板 | | **泄露日志** | 自动记录泄露详情、时间线和响应过程 | 当泄露被报告时: 1. 立即向隐私负责人发送内部告警 2. 记录日期、范围和受影响数据类型 3. 如属于高风险,准备监管通知模板 4. 用清晰语言通知受影响个人并说明建议操作 ## 审计日志 隐私相关操作会自动记录,并且不应被修改或删除: * 同意收集和撤回事件 * 数据访问、修改和删除操作 * 数据主体请求及处理结果 * DPIA 评估及更新 * 泄露通知和响应 * 管理员访问敏感字段 可从 **"设置"** -> **"隐私"** -> **"审计日志"** 访问审计日志。 ## 控制检查清单 使用以下清单确认关键隐私控制已经配置: * [ ] 已启用隐私同意并配置清晰文案 * [ ] 已在同意区域链接隐私政策 * [ ] 已识别并标记敏感字段 * [ ] 已配置数据留存策略 * [ ] 已选择并记录合法依据 * [ ] 已配置数据主体请求处理 * [ ] 已为高风险表单完成 DPIA * [ ] 已设置泄露通知 * [ ] 团队成员已了解 GDPR 处理流程 ## 下一步 * [GDPR 控制参考](/docs/advanced/gdpr) - 隐私控制详细说明 * [数据管理](/docs/data-management) - 管理、导出和删除表单数据 * [协作](/docs/collaboration) - 控制团队对敏感数据的访问 --- # 实用指南 (https://mobyform.com/zh/docs/guides) ## 实用指南 以下指南提供常见使用场景的详细操作步骤,帮助你快速完成各类表单的创建和配置。 ## 表单创建指南 * [如何创建问卷调查](/docs/guides/create-survey) — 设计专业问卷,收集用户反馈和市场数据 * [如何创建报名表单](/docs/guides/create-registration) — 活动报名、课程注册、会议登记 * [如何创建在线考试](/docs/guides/create-quiz) — 在线测验,自动评分和成绩分析 * [如何创建订单表单](/docs/guides/create-order-form) — 收集商品选择、报名和服务订购详情 * [如何保存表单模板](/docs/guides/save-form-template) - 将完成的表单保存为可复用模板 ## 集成与嵌入 * [如何嵌入表单到网站](/docs/guides/embed-form) — iframe 嵌入、弹窗嵌入、各平台嵌入方法 ## 设计复用 * [如何复用主题](/docs/guides/reuse-theme) - 保存并应用可复用表单样式 ## 数据处理 * [如何使用打印模板](/docs/guides/print-template) — 自定义打印模板、证书生成、签到表 ## 高级配置 * [离线表单收集](/docs/guides/offline-collection) — 无需网络连接收集表单数据 * [自定义域名设置](/docs/guides/custom-domain-setup) — 配置自定义域名实现品牌化表单分享 * [GDPR 控制配置](/docs/guides/gdpr-setup) — 配置表单隐私控制的分步指南 * [API 快速入门](/docs/guides/api-quickstart) — 几分钟内完成第一个 API 调用 --- # 离线表单收集 (https://mobyform.com/zh/docs/guides/offline-collection) ## 离线表单收集 Mobyform 支持离线数据收集,让你在网络受限或无网络的环境中收集表单数据。数据保存在设备本地,网络恢复后自动同步上传。 > 需要 Pro 及以上套餐 ## 离线模式工作原理 离线模式基于 PWA(渐进式 Web 应用)技术构建。当你在有网络时打开表单,Service Worker 会缓存表单结构、资源和提交逻辑。缓存完成后,即使没有网络也可以填写和提交表单。提交的数据存储在浏览器本地存储中,网络恢复后自动上传。 ### 离线模式架构 | 组件 | 作用 | | ------------------ | ------------- | | **Service Worker** | 缓存表单资源并处理离线请求 | | **本地存储** | 在同步前存储表单提交数据 | | **同步引擎** | 检测网络连接并上传排队数据 | | **冲突解决器** | 处理重复或冲突的提交 | ## 第一步:启用离线模式 1. 打开要离线使用的表单 2. 进入 **「表单设置」** → **「高级」** 3. 开启 **「启用离线模式」** 开关 4. 保存设置 启用后,表单将包含一个 Service Worker,缓存所有必要资源。 ## 第二步:在线时缓存表单 在外出采集之前,在每台要用于离线收集的设备上打开表单: 1. 在浏览器中打开表单链接(推荐使用 Chrome、Edge 或 Safari) 2. 等待页面完全加载 — 出现确认提示:"表单已准备好离线使用" 3. 可选:将表单添加到设备主屏幕以便快速访问(浏览器菜单 → "添加到主屏幕") 此时该设备上的表单已缓存完毕,可以离线使用。 ## 第三步:离线收集数据 在无网络环境下: 1. 打开已缓存的表单(从浏览器或主屏幕快捷方式) 2. 正常填写表单字段 3. 点击 **「提交」** 4. 提交数据保存在本地 — 提示确认:"回复已保存,将在联网后同步" 5. 重复操作以收集更多数据 表单顶部的计数器显示本地排队的提交数量。 ## 第四步:恢复连接后同步 设备重新联网时: 1. 在浏览器中打开表单(如果页面仍然打开,可能会在后台自动同步) 2. 同步引擎检测到网络连接并开始上传排队的提交 3. 进度指示器显示同步状态 4. 完成后,本地数据被清除 如果某条提交同步失败(如服务器错误),它会留在本地队列中并自动重试。 ### 手动同步 如果自动同步未触发: 1. 在有网络时打开表单 2. 点击表单顶部的 **同步图标** 3. 确认上传 ## 功能限制 离线模式存在以下限制: | 功能 | 离线支持 | | ---------- | ----------- | | 文本、数字、日期字段 | 完全支持 | | 单选、多选、下拉框 | 完全支持 | | 星级评分、NPS | 完全支持 | | 文件上传 | 离线不支持(需要联网) | | 图片拍照 | 本地保存,同步时上传 | | 签名字段 | 完全支持 | | 支付字段 | 离线不支持 | | 条件逻辑 | 支持(逻辑在本地运行) | | 多页表单 | 完全支持 | ## 最佳实践 * **出发前测试离线功能** — 在实际设备上验证表单离线工作正常后再外出采集 * **确保表单完全缓存** — 在每台设备上等待 "已准备好离线使用" 的确认提示 * **使用支持的字段类型** — 用于离线的表单避免使用文件上传和支付字段 * **注意电量** — 离线数据存储在浏览器中;设备关机前未同步的数据可能丢失 * **尽快同步** — 有网络时尽早上传收���的数据,减少数据丢失风险 * **谨慎清理浏览器数据** — 清除浏览器缓存或站点数据会删除未同步的提交 ## 常见问题 ### 表单无法离线加载 * 确保在有网络时至少完整加载过一次表单 * 检查浏览器是否支持 Service Worker(使用 Chrome、Edge 或 Safari) * 确认表单设置中已开启 "启用离线模式" ### 提交数据未同步 * 确认设备已连接到网络 * 尝试打开表单并点击手动同步图标 * 检查浏览器是否阻止了后台同步权限 ### 同步后出现重复提交 * 同步引擎包含基于提交时间戳的去重逻辑 * 如果出现重复,可以在数据管理面板中识别和删除 ## 下一步 * [表单设置](/docs/form-settings) — 配置更多表单选项 * [数据管理](/docs/data-management) — 管理和导出已同步的提交数据 --- # 如何使用打印模板 (https://mobyform.com/zh/docs/guides/print-template) ## 如何使用打印模板 Mobyform 支持自定义打印模板,让你按照需要的格式打印提交数据、生成证书、签到表等文档。 ## 应用场景 * **签到表** — 打印活动参与者签到名单 * **证书/奖状** — 为考试通过者生成证书 * **数据报表** — 按自定义格式打印数据 * **收据/订单** — 打印支付订单信息 * **通知单** — 打印个人通知文件 ## 使用默认模板打印 ### 打印单条数据 1. 进入表单的 **「数据」** 页面 2. 点击某条提交记录查看详情 3. 点击 **「打印」** 按钮 4. 系统使用默认模板生成打印页面 5. 确认后打印 ### 批量打印 1. 在数据列表中勾选多条记录 2. 点击批量操作中的 **「打印」** 3. 逐条或合并打印选中的记录 ## 自定义打印模板 ### 创建打印模板 1. 在表单发布页面找到 **「打印模板」** 设置 2. 点击 **「新建模板」** 3. 进入模板编辑器 ### 模板编辑器 打印模板编辑器支持: * **拖拽字段** — 将表单字段拖拽到模板中 * **自由布局** — 自由拖拽调整字段位置和大小 * **文本编辑** — 添加固定文本、标题、说明 * **样式设置** — 设置字体、字号、颜色、对齐方式 * **图片** — 插入 Logo、印章等图片 * **表格** — 使用表格布局数据 * **页面设置** — 纸张大小(A4、A5 等)、方向(纵向/横向)、边距 ### 使用字段变量 在模板中插入表单字段的值: * 从字段列表中选择字段 * 字段值在打印时自动替换为实际提交的数据 * 支持所有字段类型(文本、选择、日期、图片等) ### 模板示例 **证书模板**: ``` [Logo 图片] 结 业 证 书 兹证明 {姓名} 同学于 {日期} 完成了 「{课程名称}」全部课程学习, 考核成绩:{考试成绩} 分, 特此证明。 颁发单位:XXX 培训中心 颁发日期:{提交日期} ``` **签到表模板**: | 序号 | 姓名 | 手机号 | 签到时间 | 签名 | | -- | ----- | ------ | ------- | ------------ | | 1 | \{姓名} | \{手机号} | \{提交时间} | \_\_\_\_\_\_ | ## 使用打印模板 ### 应用模板 1. 在数据详情页点击 **「打印」** 2. 选择要使用的打印模板 3. 预览打印效果 4. 确认后打印或导出为 PDF ### 管理模板 * **编辑** — 修改已有模板 * **复制** — 复制模板为基础创建新模板 * **删除** — 删除不需要的模板 * 每个表单可以创建多个打印模板 ## 证书生成 ### 配置证书模板 1. 创建一个证书样式的打印模板 2. 插入证书所需的字段(姓名、成绩、日期等) 3. 添加证书编号(可使用随机编号字段) 4. 设计证书的视觉样式(边框、Logo、印章等) ### 批量生成证书 1. 在数据列表中筛选符合条件的记录(如及格的考生) 2. 选中这些记录 3. 使用证书模板批量打印 4. 可导出为 PDF 保存 ## 最佳实践 * **先预览再打印** — 使用打印预览检查布局是否正确 * **考虑纸张大小** — 根据用途选择合适的纸张规格 * **保持简洁** — 打印模板不需要包含所有字段,只放必要信息 * **测试边距** — 不同打印机的边距可能不同,留出足够边距 * **使用高分辨率图片** — Logo 和印章图片确保清晰 ## 相关文档 * [数据管理](/docs/data-management) — 查看和管理数据 * [考试测评](/docs/exam) — 配合证书功能使用 * [发布与分享](/docs/publishing) — 了解发布选项 --- # 如何复用主题 (https://mobyform.com/zh/docs/guides/reuse-theme) ## 如何复用主题 可复用主题可以帮助你在多个表单之间保持品牌样式一致,不需要每次重新设置颜色、字体、封面和按钮样式。 ## 第一步:完成源表单样式 打开你想作为设计来源的表单。 1. 进入表单编辑器。 2. 打开 **「主题」** 标签。 3. 按需调整颜色、字体、输入框样式、按钮样式、封面页、Logo、页脚、水印和自定义 CSS。 4. 检查桌面端和移动端预览。 5. 如果出现低对比度提示,先修正可读性问题。 只有当表单视觉设计已经适合复用时,才建议保存为主题。 ## 第二步:保存为我的主题 1. 打开主题库面板。 2. 选择 **「保存为我的主题」**。 3. 输入清晰的主题名称。 4. 选择分类、新建个人分类,或保持未分类。 5. 检查预览卡片。 6. 保存主题。 主题名称必填,最长 120 个字符。个人分类适合用来区分品牌体系、活动样式、营销样式或客户专属样式。 ## 第三步:应用到其他表单 1. 在编辑器中打开另一个表单。 2. 进入 **「主题」**。 3. 打开主题库。 4. 切换到 **「我的」**,或通过搜索找到主题。 5. 点击主题卡片上的 **「应用」**。 6. 确认应用。 应用主题只会替换视觉样式,不会修改字段、逻辑、表单设置、发布设置或提交数据。 ## 第四步:检查结果 应用主题后,请检查: * 表单标题和描述是否仍然适配布局。 * 提交按钮文案是否清晰可读。 * 桌面端和移动端预览是否正常。 * 如果主题包含封面页,检查封面进入方式。 * 如果目标表单字段类型不同,重新检查自定义 CSS。 ## 什么时候使用公共主题 当团队已经确认一套可共享样式,并希望更多成员复用时,使用 **「公共」** 主题。个人实验、客户专属样式、尚未准备共享的设计,建议放在 **「我的主题」** 中。 ## 相关文档 * [主题定制](/docs/theme) - 查看完整主题设计器和主题库说明 * [表单编辑器](/docs/form-editor) - 了解主题标签在编辑器中的位置 * [模板](/docs/templates) - 复用完整表单结构,而不只是视觉样式 --- # 如何保存表单模板 (https://mobyform.com/zh/docs/guides/save-form-template) ## 如何保存表单模板 当你希望以后复用某个表单的字段、布局、逻辑、设置和主题时,可以将它保存为模板,作为后续创建表单的起点。 ## 第一步:准备表单 保存模板前,请先检查: * 删除测试字段和临时文案。 * 确认必填项和校验规则。 * 检查条件逻辑。 * 检查主题和封面图。 * 确保表单名称足够清晰,方便以后识别。 模板应该像一个可复用的起点,而不是未完成的草稿。 ## 第二步:打开另存为模板 1. 进入表单管理。 2. 打开表单操作菜单。 3. 选择 **「另存为模板」**。 ## 第三步:填写模板信息 填写模板信息: * **封面图**:可选,但建议上传,方便模板卡片识别。支持 PNG、JPG 和 JPEG,最大 5 MB。 * **模板名称**:必填。名称应简短,并能说明表单用途。 * **描述**:可选。说明这个模板适合什么场景。 * **分类**:可选。选择已有分类,或保持未分类。 * **可见性**:选择保存为私有模板或公共模板。 ## 第四步:选择合适的可见性 以下情况适合使用 **私有模板**: * 保存个人工作流。 * 模板只用于某个项目、活动或客户。 * 模板还需要进一步审核。 * 希望用个人分类整理模板。 以下情况适合使用 **公共模板**: * 模板已经适合更广泛复用。 * 模板应出现在共享模板浏览中。 * 你拥有发布共享模板的权限。 公共模板只能使用公共分类或未分类。如果当前选择了个人分类,再切换为公共模板,分类会重置为未分类。 ## 第五步:复用模板 保存后: 1. 打开 **「模板库」** 或 **「我的模板」**。 2. 按名称搜索模板。 3. 使用前先预览。 4. 点击 **「使用」**。 5. 在编辑器中继续修改新表单。 新表单会在当前工作区上下文中创建。 ## 最佳实践 * 模板名称保持简短、具体。 * 封面图应体现表单类型或使用场景。 * 私有实验模板放入个人分类。 * 只有准备好供团队复用的模板,才放入公共分类。 * 保存后预览一次,确认以后使用者看到的是预期效果。 ## 相关文档 * [模板](/docs/templates) - 查看完整模板说明 * [创建表单](/docs/create-form) - 了解所有创建方式 * [主题定制](/docs/theme) - 将视觉样式保存为可复用主题