# Accessing your Invoices in Weavely.ai
Source: https://help.weavely.ai/accounts/invoices
Learn where to access your Weavely.ai pro subscription invoices.
When you upgrade your Weavely subscription, you won't automatically receive invoices by email from us. However, you can easily access invoices for all your payments inside our platform.
Inside the dashboard navigate to **Settings → Team Settings** and click the "*Billing & Invoices*" button. You'll be redirected to a Stripe portal which contains all your details.
# Forms API
Source: https://help.weavely.ai/developers/forms
Generate and manage AI-powered forms using Weavely’s Forms API. Create, retrieve, and customize form data easily.
## Generate form
> POST api.weavely.ai/v1/forms/generate
### Request
*No authentication header is required for this endpoint.*
#### Body
A friendly name for the form (optional).
A natural-language description of the form to generate\
e.g. `"A simple contact form in Flemish"`.
Optional array of the following objects:
```json theme={null}
{
mimeType: file.mimeType, // e.g., "image/png", "application/pdf"
data: file.data // file encoded as base64
}
```
### Response
The URL that opens the generated form in the Weavely editor.
## Get form fields
> GET api.weavely.ai/v1/forms/\[formId]/fields
### Request
#### Headers
`Bearer `\
Your personal token.
#### Path Parameters
The unique identifier of the form.
### Response
The form's unique identifier.
The timestamp of the published version, or `null` if the form has no published version.
The list of fields in the form.
Each field object includes:
The field's unique identifier.
The field's display label.
The type of the field (e.g., `text`, `datetime`, etc.).
## Get form specification
> GET api.weavely.ai/forms/:id/client
Retrieves the complete specification of a published form.
### Request
*No authentication required for this endpoint.*
#### Path Parameters
The unique identifier (UUID) of the form.
### Response
The form's unique identifier.
The form's display name.
The Weavely plan tier (e.g., "pro", "free").
Form configuration including access, general, notifications, and security settings.
Complete form structure with all pages and elements.
See **Form Structure Reference** below for complete specifications.
Complete theme configuration.
See **Theme Configuration Reference** below for all available options.
Auto-generated variables for each input field in the form.
Each variable includes `id` (pattern: `field:{elementId}`), `type`, `label`, and `dataType`.
Conditional logic rules configured for the form.
See **Logic Rules Reference** below for structure.
Event-based triggers configured for the form.
See **Event Triggers Reference** below for structure.
Calculated field values configured for the form.
Page metadata for SEO and social sharing (icon, title, description, openGraphImage).
Internationalization settings including language code and UI translations.
This endpoint returns the complete published form specification. The form must be published for this endpoint to return data — unpublished forms will return a 400 Bad Request error.
## Create form
> POST api.weavely.ai/v1/forms
Creates a new form from a complete form specification.
### Request
#### Headers
`Bearer `\
Your personal token.
`application/json`
#### Body
The request body is a complete form specification with the following structure:
Display name for the form shown in the Weavely dashboard.
The UUID of the team to associate this form with.
Set to `true` to publish the form immediately. Without this, the form is created as a draft and won't be accessible at its public URL.
The form structure containing all pages and elements.
```json theme={null}
{
"pages": [
{
"id": "string",
"name": "string",
"type": "form-page" | "ending-page" | "score-outcome-page" | "match-outcome-page",
"elements": [...]
}
]
}
```
See **Form Structure Reference** below for page types, element types, and configurations.
The form's visual theme configuration.
```json theme={null}
{
"name": "string",
"font": {...},
"logo": {...},
"colors": {...},
"layout": {...},
"visual": {...}
}
```
See **Theme Configuration Reference** below for all available options.
Optional form settings.
```json theme={null}
{
"type": "quiz" | "score" | "match" | "payment",
"quiz": {
"instantFeedback": boolean
},
"score": {
"outcomes": [...]
},
"match": {
"outcomes": [...]
},
"access": {
"stopSubmissions": boolean
},
"general": {
"showProgressBar": boolean,
"autoSaveProgress": boolean,
"showValidationErrors": boolean
},
"notifications": {
"submissionEmail": {...},
"confirmationEmail": {...}
},
"i18n": {
"language": "string"
}
}
```
Omit `type` for universal form behaviour. See **Quiz Mode Reference**, **Score Mode Reference**, **Match Mode Reference**, and **Payment Mode Reference** below for mode-specific settings. See **Internationalisation Reference** for supported language codes.
Optional conditional logic rules.
Each rule defines conditions and actions to execute based on field values.
See **Logic Rules Reference** below for complete documentation.
Optional event-based triggers.
Triggers execute actions in response to form events (e.g., form submission, page load).
See **Event Triggers Reference** below for available triggers and actions.
Optional calculated field values.
(Currently undocumented - reserved for future use)
Optional page-specific attributes.
(Currently undocumented - reserved for future use)
### Response
The unique identifier (UUID) of the created form.
Direct link to the published form. **Only present when `publish` is set to `true`** in the request body.
Format: `https://forms.weavely.ai/{formId}`
Direct link to edit the form.
Format: `https://forms.weavely.ai/editor/{formId}`
### Example
**Request:**
```bash theme={null}
curl -X POST https://api.weavely.ai/v1/forms \
-H "Content-Type: application/json" \
-H "Authorization: Bearer wvy_your_token_here" \
-d '{
"name": "Contact Form",
"teamId": "your-team-uuid",
"publish": true,
"formJSON": {
"pages": [{
"id": "page-1",
"name": "Contact",
"type": "form-page",
"elements": [
{
"id": "name",
"type": "input-text",
"label": "Your Name",
"settings": { "required": true },
"placeholder": "Enter your name..."
}
]
}]
},
"themeJSON": {
"name": "Nova",
"colors": {
"primary": "#6c5ce7",
"background": "#FFFFFF"
}
}
}'
```
**Response:**
```json theme={null}
{
"id": "8e2d178f-4e9c-4fe3-9619-e44412bf7ba1",
"editor": "https://forms.weavely.ai/editor/8e2d178f-4e9c-4fe3-9619-e44412bf7ba1",
"url": "https://forms.weavely.ai/8e2d178f-4e9c-4fe3-9619-e44412bf7ba1"
}
```
***
## Update form
> POST api.weavely.ai/v1/forms/:id
Updates an existing form. This is a partial update endpoint — only the fields provided in the request body will be updated. All omitted fields remain unchanged.
### Request
#### Headers
`Bearer `\
Your personal token.
`application/json`
#### Path Parameters
The unique identifier (UUID) of the form to update.
#### Body
All body parameters are optional. Only include the fields you want to update. Omitted fields will remain unchanged.
Update the form's name.
Update the form structure containing pages and elements.
```json theme={null}
{
"pages": [
{
"id": "string",
"name": "string",
"type": "form-page" | "ending-page" | "score-outcome-page" | "match-outcome-page",
"elements": [...]
}
]
}
```
See **Form Structure Reference** below for page types, element types, and configurations.
Update the form's visual theme configuration.
```json theme={null}
{
"name": "string",
"font": {...},
"logo": {...},
"colors": {...},
"layout": {...},
"visual": {...}
}
```
See **Theme Configuration Reference** below for all available options.
Update form settings.
```json theme={null}
{
"type": "quiz" | "score" | "match" | "payment",
"quiz": {
"instantFeedback": boolean
},
"score": {
"outcomes": [...]
},
"match": {
"outcomes": [...]
},
"access": {
"stopSubmissions": boolean
},
"general": {
"showProgressBar": boolean,
"autoSaveProgress": boolean,
"showValidationErrors": boolean
},
"notifications": {
"submissionEmail": {...},
"confirmationEmail": {...}
},
"i18n": {
"language": "string"
}
}
```
Omit `type` for universal form behaviour. See **Quiz Mode Reference**, **Score Mode Reference**, **Match Mode Reference**, and **Payment Mode Reference** below for mode-specific settings. See **Internationalisation Reference** for supported language codes.
Update conditional logic rules.
Each rule defines conditions and actions to execute based on field values.
See **Logic Rules Reference** below for complete documentation.
Update event-based triggers.
Triggers execute actions in response to form events (e.g., form submission, page load).
See **Event Triggers Reference** below for available triggers and actions.
Update calculated field values.
(Currently undocumented - reserved for future use)
### Response
The unique identifier (UUID) of the updated form.
### Examples
**Update only the form name:**
```bash theme={null}
curl -X POST https://api.weavely.ai/v1/forms/e2fdec38-130c-4e2c-b0c7-4f238206c9ce \
-H "Content-Type: application/json" \
-H "Authorization: Bearer wvy_your_token_here" \
-d '{
"name": "Updated Contact Form"
}'
```
**Response:**
```json theme={null}
{
"id": "e2fdec38-130c-4e2c-b0c7-4f238206c9ce"
}
```
***
This endpoint performs a **partial update**. Only the top-level fields you include in the request body will be modified. All other fields remain unchanged. This allows you to update specific parts of a form without needing to send the entire form structure.
When updating nested objects like `themeJSON` or `settings`, the entire object at that level is replaced. For example, if you update `themeJSON.colors`, make sure to include all color properties you want to keep, as the entire `colors` object will be replaced.
## Form Structure Reference
### Page Structure
A form consists of one or more pages. Each page has the following structure:
```json theme={null}
{
"id": "string (UUID)",
"name": "string",
"type": "form-page" | "ending-page" | "score-outcome-page" | "match-outcome-page",
"elements": [...]
}
```
#### Page Types
| Type | Description |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `form-page` | A standard page in the form flow. Can contain any element type. Pages are shown in the order they appear in the `pages` array. |
| `ending-page` | Shown after the form is submitted. Not part of the fillable flow. Used by universal forms and quizzes. |
| `score-outcome-page` | Shown after submission of a **score form**, based on the respondent's total score. Used instead of ending pages — see **Score Mode Reference** below. |
| `match-outcome-page` | Shown after submission of a **match form**, based on the respondent's best-matching outcome. Used instead of ending pages — see **Match Mode Reference** below. |
#### Ending Pages
**Every universal form and quiz must have at least one ending page.** Score and match forms use outcome pages instead (one per outcome).
Ending pages and outcome pages can only contain **display elements**:
* `heading`
* `paragraph`
* `image`
* `lottie`
* `embed-html`
* `embed-audio`
* `embed-video`
A form can have **multiple ending pages**. By default, the first ending page is shown after submission. Use the `setEnding` logic rule action to conditionally direct respondents to a different ending page — for example, based on a quiz score or a specific answer (see **Logic Rules Reference** below).
The API does not validate the presence of an ending page — forms can be created and even published without one. It is the responsibility of the API consumer to always include at least one ending page (or, for score and match forms, one outcome page per outcome) in `formJSON.pages`. The Weavely editor enforces this for forms built in the UI.
### Element Types
Weavely forms support 27 element types organized into categories:
**Input Elements:**
* `input-text` - Single-line text input
* `input-number` - Numeric input
* `input-email` - Email address input with validation
* `input-phone-number` - Phone number input
* `input-url` - URL input with validation
* `input-time` - Time picker
* `input-date` - Date picker
* `text-area` - Multi-line text input
* `input-file` - File upload
**Choice Elements:**
* `checkbox-buttons` - Multiple selection checkboxes
* `radio-buttons` - Single selection radio buttons
* `dropdown` - Dropdown select menu
* `image-choice` - Image-based selection
* `checkbox` - Single checkbox (yes/no)
* `matrix` - Grid of choices (rows × columns)
* `ranking` - Drag-and-drop ranking
**Rating Elements:**
* `star-rating` - Star-based rating (customizable number of stars)
* `scale-rating` - Numeric scale rating
* `range-slider` - Slider with min/max values
**Display Elements:**
* `heading` - Heading text
* `paragraph` - Paragraph text
* `image` - Image display
* `lottie` - Lottie animation player
* `embed-html` - Custom HTML embed
* `embed-audio` - Audio player
* `embed-video` - Video embed
**Special Elements:**
* `signature` - Digital signature capture
***
### Element Specifications
**Single-line text input**
```json theme={null}
{
"type": "input-text",
"label": "string",
"settings": {
"required": boolean
},
"description": "string",
"placeholder": "string"
}
```
**Numeric input only**
```json theme={null}
{
"type": "input-number",
"label": "string",
"settings": {
"required": boolean
},
"description": "string",
"placeholder": "string"
}
```
**Email input with validation**
```json theme={null}
{
"type": "input-email",
"label": "string",
"settings": {
"required": boolean
},
"description": "string",
"placeholder": "string"
}
```
**Phone number input**
```json theme={null}
{
"type": "input-phone-number",
"label": "string",
"settings": {
"required": boolean
},
"description": "string",
"placeholder": "string"
}
```
**URL input with validation**
```json theme={null}
{
"type": "input-url",
"label": "string",
"settings": {
"required": boolean
},
"description": "string",
"placeholder": "string"
}
```
**Time picker input**
```json theme={null}
{
"type": "input-time",
"label": "string",
"settings": {
"required": boolean
},
"description": "string",
"placeholder": "string"
}
```
**Date picker input**
```json theme={null}
{
"type": "input-date",
"label": "string",
"settings": {
"required": boolean
},
"description": "string",
"placeholder": "string"
}
```
**Multi-line text input**
```json theme={null}
{
"type": "text-area",
"label": "string",
"settings": {
"required": boolean
},
"description": "string",
"placeholder": "string"
}
```
**File upload input**
```json theme={null}
{
"type": "input-file",
"label": "string",
"settings": {
"required": boolean,
"maxFiles": number,
"maxFileSize": number,
"allowedFileType": "string"
},
"description": "string",
"placeholder": "string"
}
```
**Multiple selection checkboxes**
```json theme={null}
{
"type": "checkbox-buttons",
"label": "string",
"settings": {
"required": boolean,
"randomize": boolean,
"allowOtherOption": boolean,
"otherOptionLabel": "string",
"options": [
{
"label": "string",
"value": "string"
}
]
},
"description": "string",
"placeholder": "string"
}
```
**Single selection radio group**
```json theme={null}
{
"type": "radio-buttons",
"label": "string",
"settings": {
"required": boolean,
"randomize": boolean,
"allowOtherOption": boolean,
"otherOptionLabel": "string",
"options": [
{
"label": "string",
"value": "string"
}
]
},
"description": "string",
"placeholder": "string"
}
```
**Dropdown select menu**
```json theme={null}
{
"type": "dropdown",
"label": "string",
"settings": {
"required": boolean,
"randomize": boolean,
"options": [
{
"label": "string",
"value": "string"
}
]
},
"description": "string"
}
```
**Image-based selection**
```json theme={null}
{
"type": "image-choice",
"label": "string",
"settings": {
"required": boolean,
"multiple": boolean,
"randomize": boolean,
"imageWidth": number,
"imageHeight": number,
"imageFit": "string",
"options": [
{
"label": "string",
"value": "string",
"data": { "url": "string" } | null
}
]
},
"description": "string",
"placeholder": "string"
}
```
**Single checkbox (yes/no)**
```json theme={null}
{
"type": "checkbox",
"label": "string",
"settings": {
"required": boolean,
"default": boolean
},
"description": "string",
"placeholder": "string"
}
```
**Grid of choices (rows × columns)**
```json theme={null}
{
"type": "matrix",
"label": "string",
"fields": [
{
"id": "string (UUID)",
"type": "matrix-field",
"label": "string",
"settings": {
"required": boolean,
"multiple": boolean,
"options": [
{
"label": "string",
"value": "string"
}
]
},
"description": "string",
"placeholder": "string"
}
],
"settings": {
"required": boolean,
"multiple": boolean,
"options": [
{
"label": "string",
"value": "string"
}
]
},
"description": "string"
}
```
**Drag-and-drop ranking**
```json theme={null}
{
"type": "ranking",
"label": "string",
"settings": {
"required": boolean,
"options": [
{
"label": "string",
"value": "string"
}
]
},
"description": "string",
"placeholder": "string"
}
```
**Star-based rating**
```json theme={null}
{
"type": "star-rating",
"label": "string",
"settings": {
"required": boolean,
"stars": number,
"icon": "string"
},
"description": "string",
"placeholder": "string"
}
```
**Numeric scale rating**
```json theme={null}
{
"type": "scale-rating",
"label": "string",
"settings": {
"required": boolean,
"scales": number
},
"description": "string",
"placeholder": "string"
}
```
**Slider with min/max values**
```json theme={null}
{
"type": "range-slider",
"label": "string",
"settings": {
"min": number,
"max": number,
"step": number
},
"description": "string",
"placeholder": "string"
}
```
**Heading text**
```json theme={null}
{
"type": "heading",
"label": "string"
}
```
**Paragraph text. Supports HTML markup and variable piping via `{{variable_id}}` syntax.**
```json theme={null}
{
"type": "paragraph",
"label": "string"
}
```
**Image display**
```json theme={null}
{
"type": "image",
"settings": {
"src": "string (URL)"
}
}
```
**Lottie animation player**
```json theme={null}
{
"type": "lottie",
"settings": {
"src": "string (URL to Lottie JSON file)",
"loop": boolean
}
}
```
**Custom HTML embed**
```json theme={null}
{
"type": "embed-html",
"settings": {
"codeSnippet": "string"
}
}
```
**Audio player**
```json theme={null}
{
"type": "embed-audio",
"settings": {
"url": "string"
}
}
```
**Video embed**
```json theme={null}
{
"type": "embed-video",
"settings": {
"url": "string"
}
}
```
**Digital signature capture**
```json theme={null}
{
"type": "signature",
"label": "string",
"settings": {
"fileFormat": "string"
},
"description": "string",
"placeholder": "string"
}
```
***
## Theme Configuration Reference
The `themeJSON` object controls all visual styling for the form. It contains the following sections: `name`, `font`, `logo`, `colors`, `layout`, `visual`, and `components`.
### Theme Presets
Weavely includes 7 preset themes. Set via the `name` field — the preset provides default values for colors, fonts, and components. Any explicit values you set will override the preset defaults.
* `Nova`
* `Retro`
* `Dawn`
* `Dusk`
* `Frost`
* `Ember`
* `Glass`
### Font
Controls typography for body text and headings independently.
```json theme={null}
"font": {
"text": {
"size": "16px",
"family": "Plus Jakarta Sans"
},
"headings": {
"size": "32px",
"family": "Plus Jakarta Sans"
}
}
```
You can also set the font family globally using a shorthand:
```json theme={null}
"font": {
"family": "Poppins"
}
```
### Logo
Optional logo image displayed on the form.
```json theme={null}
"logo": {
"src": "string (URL)" | null,
"variables": {
"width": "40px",
"justifySelf": "center"
}
}
```
Set `src` to an image URL, or `null` for no logo.
### Colors
Full color palette for the form. All values are hex codes.
```json theme={null}
"colors": {
"primary": "#6c5ce7",
"background": "#FFFFFF",
"text": "#000000",
"question": "#000000",
"answer": "#000000",
"secondary": "#222222",
"surface": "#F7F8FA",
"border": "#dedfe0",
"error": "#FF0000"
}
```
| Color | Controls |
| ------------ | ------------------------------- |
| `primary` | Buttons, accents, active states |
| `background` | Page/form background |
| `text` | General body text |
| `question` | Field labels / question text |
| `answer` | User input text |
| `secondary` | Secondary UI elements |
| `surface` | Input field backgrounds |
| `border` | Input borders, dividers |
| `error` | Validation error messages |
You can provide only a subset of colors (e.g. just `primary` and `background`) and the theme preset will fill in the rest.
### Layout
Controls where the visual (image or color) appears relative to the form.
```json theme={null}
"layout": {
"type": "right"
}
```
| Type | Description |
| --------- | ----------------------------------------------------------- |
| `under` | Visual is placed behind the form as a full-page background |
| `left` | Visual is displayed as a left side panel, form on the right |
| `right` | Visual is displayed as a right side panel, form on the left |
| `clean` | No visual — form only |
| `over` | Visual overlays the form area |
| `through` | Visual bleeds through the form |
### Visual
The background visual — either an image or a solid color. Works together with `layout` to determine how the visual is positioned.
**Image visual:**
```json theme={null}
"visual": {
"type": "image",
"value": "string (image URL)",
"variables": {
"size": "cover",
"repeat": "no-repeat",
"position": "center"
}
}
```
**Color visual:**
```json theme={null}
"visual": {
"type": "color",
"value": "#5a3131",
"variables": {
"size": "cover",
"repeat": "no-repeat",
"position": "center"
}
}
```
The `variables` object uses CSS-like properties and defaults to `size: "cover"`, `repeat: "no-repeat"`, `position: "center"` for both types.
**Common combinations:**
* Side image: `layout.type: "right"` (or `"left"`) + `visual.type: "image"` — displays a photo alongside the form
* Background color: `layout.type: "under"` + `visual.type: "color"` — fills the page behind the form with a solid color
* Background image: `layout.type: "under"` + `visual.type: "image"` — fills the page behind the form with an image
* No visual: `layout.type: "clean"` — form only, no visual element
### Components
Controls form layout, input style, button style, and question weight.
```json theme={null}
"components": {
"form": {
"variables": {
"gap": "30px",
"maxWidth": "700px",
"textAlign": "left"
}
},
"input": {
"preset": "default"
},
"button": {
"preset": "default",
"hoverAnimation": {
"preset": "grow"
}
},
"question": {
"variables": {
"fontWeight": "500"
}
}
}
```
**Input presets:**
* `default` — Rounded input styling
* `square` — Square input styling
**Button presets:**
* `default` — Rounded button styling
* `square` — Square button styling
**Hover animation presets:**
* `default` — Default hover animation
* `grow` — Grow effect on hover
### Complete themeJSON Example
```json theme={null}
{
"name": "Nova",
"font": {
"text": { "size": "16px", "family": "Plus Jakarta Sans" },
"headings": { "size": "32px", "family": "Plus Jakarta Sans" }
},
"logo": {
"src": null,
"variables": { "width": "40px", "justifySelf": "center" }
},
"colors": {
"primary": "#6c5ce7",
"background": "#FFFFFF",
"text": "#000000",
"question": "#000000",
"answer": "#000000",
"secondary": "#222222",
"surface": "#F7F8FA",
"border": "#dedfe0",
"error": "#FF0000"
},
"layout": { "type": "right" },
"visual": {
"type": "image",
"value": "https://example.com/your-image.jpg",
"variables": { "size": "cover", "repeat": "no-repeat", "position": "center" }
},
"components": {
"form": { "variables": { "gap": "30px", "maxWidth": "700px", "textAlign": "left" } },
"input": { "preset": "default" },
"button": { "preset": "default", "hoverAnimation": { "preset": "grow" } },
"question": { "variables": { "fontWeight": "500" } }
}
}
```
***
## Quiz Mode Reference
Quiz mode turns a form into a scored assessment.
### Enabling Quiz Mode
Set `settings.type` to `"quiz"` and optionally configure quiz-specific settings:
```json theme={null}
{
"settings": {
"type": "quiz",
"quiz": {
"instantFeedback": true
}
}
}
```
| Setting | Type | Description |
| ---------------------- | -------- | ---------------------------------------------------------------------------------------- |
| `type` | `"quiz"` | Activates quiz mode. Omit for universal form behaviour |
| `quiz.instantFeedback` | boolean | When `true`, shows correct/incorrect feedback after each question rather than at the end |
### Quiz-Compatible Element Types
Only the following element types support quiz scoring:
* `radio-buttons`
* `checkbox-buttons`
* `input-text`
* `dropdown`
### The `quiz` Property
Add a `quiz` object to any compatible element to define its correct answer and score:
```json theme={null}
{
"id": "string (UUID)",
"type": "radio-buttons",
"label": "What is the capital of France?",
"settings": { ... },
"quiz": {
"score": 1,
"answer": "Paris"
}
}
```
| Field | Type | Description |
| -------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `score` | number | Points awarded for a correct answer. Can be any positive number — questions can be weighted differently |
| `answer` | string | Correct answer for single-select elements (`radio-buttons`, `input-text`, `dropdown`). For `radio-buttons` and `dropdown`, must match the option's `value` exactly. For `input-text`, matching is case-insensitive |
| `answer` | array of strings | All correct answers for `checkbox-buttons` — respondent must select exactly this set of values |
### Quiz Variables
When quiz mode is active, four variables are automatically available for use in logic rules and answer piping:
| Variable ID | Description |
| --------------------------- | ------------------------------------------------------- |
| `quiz:quiz-score` | Total points scored by the respondent |
| `quiz:max-score` | Maximum possible score (sum of all `quiz.score` values) |
| `quiz:correct-answers` | Number of questions answered correctly |
| `quiz:total-quiz-questions` | Total number of quiz questions in the form |
### Score-Based Conditional Endings
Use quiz variables in logic rules to direct respondents to different ending pages based on their score:
```json theme={null}
{
"id": "string (UUID)",
"name": "High score ending",
"logicalOperator": "any",
"conditions": [
{
"id": "string (UUID)",
"variable": "quiz:quiz-score",
"operator": "greaterThanOrEqual",
"value": "5"
}
],
"actions": [
{
"id": "string (UUID)",
"name": "setEnding",
"data": {
"elementId": "string (ending-page UUID)"
}
}
]
}
```
All standard logic rule actions are available (`hideElement`, `showElement`, `hidePage`, `skipToPage`, `setEnding`).
### Showing Results to Respondents
Pipe quiz variables into paragraph labels using `{{variable_id}}` syntax. Element labels support HTML markup:
```html theme={null}
```
***
## Score Mode Reference
Score mode turns a form into a scored assessment that routes respondents to different outcome pages based on their total score — ideal for lead qualification, assessments, and personality-style tests.
### Enabling Score Mode
Set `settings.type` to `"score"` and define the outcomes:
```json theme={null}
{
"settings": {
"type": "score",
"score": {
"outcomes": [
{
"id": "string (UUID)",
"name": "Cold Lead",
"pageId": "string (score-outcome-page UUID)",
"maxScore": 5
},
{
"id": "string (UUID)",
"name": "Warm Lead",
"pageId": "string (score-outcome-page UUID)",
"maxScore": 10
},
{
"id": "string (UUID)",
"name": "Hot Lead",
"pageId": "string (score-outcome-page UUID)"
}
]
}
}
}
```
### Outcomes
Outcomes divide the total score into contiguous ranges. After submission, the respondent is shown the outcome page whose range their total score falls into.
| Field | Type | Description |
| ---------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | string (UUID) | Unique identifier for the outcome |
| `name` | string | Outcome name. Exposed via the `score:outcome` variable |
| `pageId` | string (UUID) | The `id` of the `score-outcome-page` to show for this outcome |
| `maxScore` | number | Inclusive upper bound of the outcome's score range. Each range starts where the previous outcome's range ends. **Must be omitted on the last outcome**, which captures all higher scores |
The example above produces the ranges: up to 5 → Cold Lead, 6 to 10 → Warm Lead, 11 or more → Hot Lead.
### Outcome Pages
Score forms use pages of type `score-outcome-page` **instead of** `ending-page`. Define one page per outcome and reference it via the outcome's `pageId`. Like ending pages, score outcome pages can only contain display elements (see **Page Structure** above).
### Scoring Answers
Points are assigned **per option** by adding a `score` property to options. The following element types support option scores:
* `radio-buttons`
* `checkbox-buttons`
* `dropdown`
```json theme={null}
{
"type": "radio-buttons",
"label": "How often do you typically wash your car?",
"settings": {
"required": true,
"options": [
{ "label": "Once a week", "value": "Once a week", "score": 3 },
{ "label": "Once a month", "value": "Once a month", "score": 2 },
{ "label": "Rarely", "value": "Rarely", "score": 0 }
]
}
}
```
### Score Variables
When score mode is active, two variables are automatically available:
| Variable ID | Description |
| --------------- | -------------------------------------- |
| `score:total` | The respondent's total score (number) |
| `score:outcome` | The name of the matched outcome (text) |
Both can be used in logic rule conditions and piped into element labels using `{{variable_id}}` syntax, e.g. `Your score: {{score:total}}`.
***
## Match Mode Reference
Match mode turns a form into a personality-style quiz that matches respondents to one of several outcomes based on weighted answers — ideal for "Which X are you?" quizzes and product recommenders.
### Enabling Match Mode
Set `settings.type` to `"match"` and define the outcomes:
```json theme={null}
{
"settings": {
"type": "match",
"match": {
"outcomes": [
{
"id": "string (UUID)",
"name": "Sports Car",
"pageId": "string (match-outcome-page UUID)"
},
{
"id": "string (UUID)",
"name": "SUV",
"pageId": "string (match-outcome-page UUID)"
}
]
}
}
}
```
### Outcomes
Unlike score mode, match outcomes have no score ranges. Each answer option contributes weighted points to one or more outcomes, and the outcome with the **highest accumulated total** is matched.
| Field | Type | Description |
| -------- | ------------- | ------------------------------------------------------------------------- |
| `id` | string (UUID) | Unique identifier for the outcome. Referenced by option `weights` |
| `name` | string | Outcome name. Exposed via the `match:outcome` variable |
| `pageId` | string (UUID) | The `id` of the `match-outcome-page` to show when this outcome is matched |
### Outcome Pages
Match forms use pages of type `match-outcome-page` **instead of** `ending-page`. Define one page per outcome and reference it via the outcome's `pageId`. Like ending pages, match outcome pages can only contain display elements (see **Page Structure** above).
### Weighting Answers
Add a `weights` object to each option, mapping **outcome IDs to points**. A single option can contribute to multiple outcomes:
```json theme={null}
{
"type": "radio-buttons",
"label": "What's your ideal weekend activity?",
"settings": {
"required": true,
"options": [
{
"label": "Racing or a track day",
"value": "Racing or a track day",
"weights": {
"{sports-car-outcome-id}": 3
}
},
{
"label": "Camping or off-roading",
"value": "Camping or off-roading",
"weights": {
"{pickup-truck-outcome-id}": 2,
"{suv-outcome-id}": 2
}
}
]
}
}
```
The following element types support option weights:
* `radio-buttons`
* `checkbox-buttons`
* `dropdown`
When the form is submitted, the weights of all selected options are added up per outcome. The respondent is shown the outcome page of the highest-scoring outcome.
### Match Variables
When match mode is active, one variable is automatically available:
| Variable ID | Description |
| --------------- | -------------------------------------- |
| `match:outcome` | The name of the matched outcome (text) |
It can be used in logic rule conditions and piped into element labels using `{{variable_id}}` syntax, e.g. `You are: {{match:outcome}}`.
***
## Payment Mode Reference
Payment mode turns a form into a payment collection form.
### Enabling Payment Mode
Set `settings.type` to `"payment"`:
```json theme={null}
{
"settings": {
"type": "payment"
}
}
```
| Setting | Type | Description |
| ------- | ----------- | --------------------------------------------------------- |
| `type` | `"payment"` | Activates payment mode. Omit for universal form behaviour |
Payment forms require additional setup in the Weavely dashboard (Stripe integration, pricing, etc.) before they can accept payments. The API call only flags the form as a payment form — it does not configure the payment provider.
***
## Logic Rules Reference
Logic rules enable conditional behavior based on field values.
### Structure
```json theme={null}
{
"id": "string (UUID)",
"name": "string",
"logicalOperator": "any" | "all",
"conditions": [{
"id": "string (UUID)",
"variable": "field:{elementId}",
"operator": "isEmpty" | "isEqual" | "contains" | ...,
"value": null | string | number
}],
"actions": [{
"id": "string (UUID)",
"name": "hideElement" | "showElement" | "skipToPage" | ...,
"data": { "elementId": "string (UUID)" }
}]
}
```
### Logical Operators
* `any` - OR logic: trigger actions if ANY condition is true
* `all` - AND logic: trigger actions if ALL conditions are true
### Condition Operators
**Universal (all field types):**
* `isEmpty` - Check if field is empty/null
* `isNotEmpty` - Check if field has a value
* `isEqual` - Check if field equals a specific value
* `isNotEqual` - Check if field does not equal a specific value
**String operators (text fields):**
* `contains` - Check if field contains a substring
* `doesNotContain` - Check if field does not contain a substring
* `startsWith` - Check if field starts with a string
* `endsWith` - Check if field ends with a string
**Numeric operators (number fields and quiz variables):**
* `lessThan` - Check if field is less than a value
* `lessThanOrEqual` - Check if field is less than or equal to a value
* `greaterThan` - Check if field is greater than a value
* `greaterThanOrEqual` - Check if field is greater than or equal to a value
### Available Actions
* `hideElement` - Hide a specific element
* `showElement` - Show a specific element
* `hidePage` - Hide a specific page
* `skipToPage` - Navigate to a specific page
* `setEnding` - Set which ending page to display
***
## Event Triggers Reference
Event triggers execute actions in response to form events.
### Structure
```json theme={null}
{
"id": "string (UUID)",
"name": "string",
"trigger": {
"name": "formSubmitted" | "formLoaded" | "formPageShown"
},
"actions": [{
"id": "string (UUID)",
"name": "openUrl" | "restartForm",
"data": { "url": "string" }
}]
}
```
### Available Triggers
* `formSubmitted` - Triggered when form is successfully submitted
* `formLoaded` - Triggered when form initially loads
* `formPageShown` - Triggered when a form page is displayed
### Available Actions
* `openUrl` - Redirect to a URL
* Requires `data.url` field
* `restartForm` - Restart the form from the beginning
* No additional data required
***
## Internationalisation Reference
Set the form's language via `settings.i18n.language`. The server automatically injects the correct system message translations (button labels, placeholders, error messages) for the chosen language.
```json theme={null}
{
"settings": {
"i18n": {
"language": "fr"
}
}
}
```
### Supported Languages
| Language | Code |
| --------------------- | --------- |
| Arabic | `ar` |
| Catalan | `ca` |
| Chinese (Simplified) | `zh-Hans` |
| Chinese (Traditional) | `zh-Hant` |
| Croatian | `hr` |
| Czech | `cs` |
| Danish | `da` |
| Dutch | `nl` |
| English | `en` |
| Estonian | `et` |
| Finnish | `fi` |
| French | `fr` |
| German (Formal) | `de` |
| German (Informal) | `di` |
| Greek | `el` |
| Hebrew | `he` |
| Hindi | `hi` |
| Hungarian | `hu` |
| Indonesian | `id` |
| Italian | `it` |
| Japanese | `ja` |
| Korean | `ko` |
| Norwegian | `no` |
| Polish | `pl` |
| Portuguese | `pt` |
| Russian | `ru` |
| Spanish | `es` |
| Swedish | `sv` |
| Turkish | `tr` |
| Ukrainian | `uk` |
| Vietnamese | `vi` |
Note: German uses custom codes — `de` for formal ("Sie") and `di` for informal ("du").
# Identity API
Source: https://help.weavely.ai/developers/identity
Retrieve user profiles and team data using Weavely’s Identity API. Access identity details, list teams, and manage form access securely.
## Get profile
> GET api.weavely.ai/v1/profile
### Request
#### Headers
`Bearer `\
Your personal token.
### Response
The user's unique identifier.
The user's full name.
The user's email address.
## List teams
> GET api.weavely.ai/v1/teams
### Request
#### Headers
`Bearer `\
Your personal token.
### Response
The total number of teams available.
An array of team objects.
The team's unique identifier.
The team's name.
## List forms in a team
> GET api.weavely.ai/v1/teams/:teamId/forms
### Request
#### Headers
`Bearer `\
Your personal token.
#### Path Parameters
The unique identifier of the team.
#### Query Parameters
If `true`, only returns forms that have a published version.
### Response
The total number of forms available.
An array of form objects.
The form's unique identifier.
The form's name.
# Submissions API
Source: https://help.weavely.ai/developers/untitled-page
API endpoints that allow you to query form submissions.
## Get form submission
> GET api.weavely.ai/v1/form-submissions/:submissionId
Retrieves a single form submission by its ID, including the values submitted for each field.
### Request
#### Headers
`Bearer `\
Your personal token.
#### Path Parameters
The unique identifier (UUID) of the submission.
### Response
The submission's unique identifier (UUID).
The values submitted for each field, keyed by `field:{elementId}`.
Values are typed according to the field's element type — strings for text/email/dropdown/radio answers, arrays for multi-select fields, URLs for file uploads and signatures, etc.
The date and time the submission was created, in ISO 8601 format.
# Webhooks API
Source: https://help.weavely.ai/developers/webhooks
Instantly deliver new form submissions to your endpoint using Weavely’s Webhooks API. Create, manage, and receive real-time webhook events easily.
## Create webhook
> POST api.weavely.ai/v1/forms/\[formId]/webhooks
### Request
#### Headers
`Bearer `\
Your personal token.
#### Parameters
The ID of the form to attach the webhook to.
#### Body
The destination URL that will receive POST payloads when a form is submitted.
### Response
The ID for the newly created webhook.
The URL you provided for receiving webhook events.
The form ID this webhook is associated with.
## Delete webhook
> DELETE api.weavely.ai/v1/\[formId]/webhooks/\[webhookId]
### Request
#### Headers
`Bearer `\
Your personal token.
#### Parameters
The ID of the form where the webhook is registered.
The ID of the webhook to delete.
### Response
None
## Webhook payload
> Example of the JSON payload delivered to your webhook endpoint when a form is submitted:
```json theme={null}
{
"formId": "01234567-89ab-cdef-0123-456789abcdef",
"responseId": "fedcba98-7654-3210-fedc-ba9876543210",
"dateCreated": "2025-05-23T14:28:00Z",
"answers": [
{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"value": "Sample text answer"
},
{
"id": "0f1e2d3c-4b5a-6978-01fe-dcba98765432",
"value": "Option A, Option C"
}
]
}
```
# How to Apply Brand Styling to Your Forms with AI
Source: https://help.weavely.ai/features/ai-branding
Learn how to create branded forms with AI in seconds. Weavely automatically extracts your brand colors, fonts, and logo from any URL.
Weavely makes it easy to create forms that match your brand identity automatically. Simply ask the AI to style your form according to any brand, and it will extract the colors, fonts, and visual elements to create a professional, on-brand form in seconds.
## How to Brand Your Form
1. **Create or open a form** in the Weavely editor
2. **Ask the AI to apply your branding** using natural language
### Example Commands:
* `Brand this form according to mywebsite.com`
* `Style this to match nike.com`
* `Apply the Coca-Cola brand to this form`
* `Make this look like Stripe's website`
## What Gets Styled?
When you apply brand styling, the AI updates:
* **Colors** - Buttons, backgrounds, and accents
* **Fonts** - Headers and body text
* **Logo** - Automatically added to your form
* \*\*Banner visual - \*\*if detected on your website visuals are used for your form's banner
While we support 44 million brands, some brands may not be in our database yet. Our system updates regularly to include new brands.
# Animations
Source: https://help.weavely.ai/features/animations
Adding animations is a quick way to make your form feel more polished and a bit more fun than your average Google Form. In Weavely, there are two ways to do it: **GIFs** (uploaded as regular images) and **Lottie animations** (uploaded as JSON files). This article covers both.
## GIF vs Lottie: which one should you use?
**GIFs** are the easiest option — upload the file like any image and you're done. Best for memes, screen recordings, or animations you already have. **Lottie animations** are vector-based, scale without losing quality, and tend to look more premium. File sizes are smaller and they're the format used by most modern animation libraries.
If you have a specific GIF you want to use, go with that. If you're choosing fresh, Lottie usually looks better.
## How to add a GIF to your form
Insert a new Image element wherever you want the animation to appear.
Upload the GIF file the same way you'd upload any image.
The default size may be too large. Setting the width to around **300 pixels** works well for most forms.
Set the alignment to centered (or wherever you want it), then drag it into place. You can also ask Weavely's AI to move it for you — for example: *"move the image to the top of the form"*.
The GIF will play automatically when someone views your form.
## How to add a Lottie animation to your form
Weavely already includes a built-in Lottie animation on the confirmation screen — the checkmark shown after someone submits the form. You can replace this with any other Lottie animation, or add Lottie animations elsewhere in your form the same way you'd add an image.
[LottieFiles.com](https://lottiefiles.com) is the main library, with thousands of free animations. Use the search bar to find something relevant to your form (e.g., "cookie," "celebration," "checkmark"), then filter by **Free** to exclude premium animations. Other sources like IconScout also have Lottie animations available.
Lottie files come in several formats, but Weavely needs the **Lottie JSON** specifically. On LottieFiles, open the download options and select **Lottie JSON**.
Insert a new Lottie element wherever you want the animation to appear. Upload the JSON file the same way you'd upload an image.
By default, the animation may be set to **fill** the available space, which can be too large. Set a specific size (around **300 pixels** works for most cases) until it looks right.
## Where to put your animations
A few common placements that work well:
* **Welcome screen**: set the tone before people start filling out your form
* **Between sections**: break up longer multi-step forms
* **Confirmation/thank you screen**: replace the default checkmark with something on-brand
* **Next to specific questions**: add personality or visual context
# Using Answer Piping in Weavely
Source: https://help.weavely.ai/features/answer-piping
Learn how to use answer piping in AI forms and surveys with Weavely. Create dynamic fields for personalized, custom user experiences.
Answer piping, also known as dynamic fields or response piping, lets you reuse answers from earlier questions in your form. This makes your surveys feel more personal and dynamic, and it works seamlessly across both standard forms and quiz mode in Weavely. Here's how to use this feature in your forms.
## What Is Answer Piping?
Answer piping allows you to insert a previous answer into another question or block of text. For example, if your form asks a user for their name, you can reference that name in later questions or confirmation messages like:
> “How are you doing, *\[Name]*?”
In quiz mode, you can also pipe dynamic quiz scores into your final screen or custom messages.
## How to Set It Up
1. **Add your questions** to the form as usual.
2. In any subsequent question or text block where you want to reuse an answer, type the `@` symbol.
3. A dropdown will appear with all previous questions and (if quiz mode is enabled) quiz score variables.
4. Select the field you want to reference.
That’s it! Weavely will automatically update the placeholder with the actual response provided by the user.
## Real-Time Behavior
* If the referenced answer is on the **same screen**, an underscore placeholder (`_`) is shown initially and is updated in real-time as the user types.
* If the referenced answer is on a **previous screen**, users will immediately see the filled-in response.
## Quiz Mode Compatibility
In [**quiz mode**](/features/quizzes), you can also pipe dynamic quiz scores into later messages or questions. After enabling quiz mode in the form settings, additional variables like `@QuizScore` will appear in the dropdown.
## Example
* **Question 1**: “What’s your name?”
* **Question 2**: “How are you doing, `@What’s your name?`?”
If the respondent types “Alex” in Q1, Q2 will display: “How are you doing, Alex?”
## Final Notes
Answer piping works in:
* Questions
* Descriptive text blocks
* [Email notifications](/integrations/email-notifications)
# Closing a Form
Source: https://help.weavely.ai/features/closing-a-form
Gathered all the responses that you needed for your form or survey? Here is how to close your form for new submissions:
Open your form from the Weavely dashboard, navigate to the "**Settings"** tab at the top of the editor.
Under the "**Access**" sub menu, you'll find a "**Close form**" toggle. This allows you to control whether the form accepts new responses.
When you close a form for new submissions new respondents will be greeted with a screen such as the one shown below.
# How to Create Multi-Language Forms in Weavely
Source: https://help.weavely.ai/features/create-multi-language-forms
Learn how to translate your form into multiple languages with AI. Weavely automatically translates all form content (e.g. questions, descriptions, and options) so respondents can fill in your form in their preferred language.
Create multilingual forms that your respondents can fill in their preferred language. Weavely's AI automatically translates all your form content (e.g. questions, descriptions, and option labels) so you can reach a wider audience without any manual translation.
## What Are Multi-Language Forms?
Multi-language forms let you add additional languages to a single form. When you add a language, Weavely's AI automatically translates all of your form content into that language. Respondents can then switch languages using a language dropdown at the top of the form.
This means you manage one form, collect all responses in one place, and let each respondent fill it in the language they're most comfortable with.
**Note:** This feature is different from the form language setting. The form language setting (available on the free tier) only translates Weavely's built-in system messages like button text and error messages. Multi-language forms translate your actual content: questions, descriptions, option labels, and everything else your respondents see. See [How to Change Your Form Language](/features/form-language) for more on that setting.
**Pricing:** Multi-language forms are available on the Pro plan (€20/month).
## How to Translate Your Form into Multiple Languages
1. Open your form in the Weavely editor
2. Navigate to **Settings** in the top menu
3. Under the **Language** section, you'll see the option to add languages as translations
4. Select a language from the dropdown, a wide range of languages are supported
5. Press **Translate**
6. Weavely's AI will generate translations for every question, description, and option label in your form
7. Review the translations on the screen and edit anything you'd like to adjust
8. Save your translations
You can add multiple languages by repeating this process. Each language gets its own full translation of your form content.
### Using AI to Add Translations
You can also ask Weavely's AI to handle the form translation through the chat interface. For example, *"Translate my form into French and Spanish."* The manual settings option is there if you prefer to do it yourself or want to review each translation in detail.
## How Respondents Switch Languages
Once you've published your multilingual form, respondents will see a language dropdown at the top of the form. They can switch between any of the languages you've added, on any page, at any time.
All form content updates instantly when they switch: questions, descriptions, option labels, radio buttons, and system messages are all displayed in the selected language.
### Automatic Browser Language Matching
You can also enable **match browser language** so your form automatically displays in the respondent's browser language. For example, if a respondent's browser is set to French and you've added a French translation, they'll see the French version when they open the form — no manual switching needed.
## Reviewing and Editing Translations
After AI translation, you can edit any translated text directly. If a translation doesn't quite match the tone or terminology you want, simply update it in the translation editor.
You can also come back to edit translations at any time through **Settings > Language**.
## Updating Translations After Form Changes
If you add new questions or make changes to your form after translating, Weavely will flag that an update is required under the language settings. You have two options:
* **Manually translate** the new content in the translation editor
* **Re-run the AI translation** by removing and re-adding the language, which will automatically include the new content
**Tip:** For the smoothest workflow, finalize your form content before adding translations. This way you only need to translate once.
## Where to Find Responses
All responses are collected in one place, regardless of which language the respondent used. There's no need to check separate forms or merge data, you manage one form and one set of results.
## Frequently Asked Questions
### How do I translate a form into another language?
Open your form in Weavely, go to **Settings > Language**, and add a language from the dropdown. Press **Translate** and Weavely's AI will automatically translate all your form content: questions, descriptions, and option labels. You can review and edit translations before saving.
### What content does multi-language translation cover?
AI translation covers all form content: questions, descriptions, option labels in radio buttons and dropdowns, and system messages. Everything your respondents see is translated automatically.
### How do respondents switch languages on the form?
Respondents see a language dropdown at the top of the form. They can switch between languages on any page, at any time, while filling in the form.
### Can the form automatically match the respondent's browser language?
Yes. You can enable the "match browser language" option so respondents automatically see the form in their browser's language when they open the form URL.
### Are responses collected separately for each language?
No. All responses are collected in one place regardless of which language the respondent used. You manage a single form and a single set of results.
### What happens if I add new questions after translating?
Weavely will flag that an update is required. You can either manually translate the new content or re-run the AI translation to include the new questions. Ideally, translate your form once it's finalized.
### Is this feature free?
Multi-language forms are available on the Pro plan (€20/month). The free tier includes the [form language setting](/features/form-language), which translates system messages only.
# How to Share Weavely Forms on a Custom Domain
Source: https://help.weavely.ai/features/custom-domain
Learn how to setup custom domains for your AI-generated forms in Weavely.ai
Weavely allows Pro users to share forms under their own custom domain, making it easy to create a branded and personalized form-sharing experience. Instead of sending out a generic `forms.weavely.ai` link, you can use a domain you own. For example, `feedback.yourcompany.com`.
## Step 1: Set Up Your CNAME Record
You'll first need to configure your DNS provider (e.g. GoDaddy, Namecheap, etc.) to point your subdomain to Weavely.
Create a **CNAME record** with the following settings:
* **Name:** `feedback` (or whatever subdomain you chose)
* **Target:** `proxy.weavely.ai`
This will route traffic from your subdomain to Weavely’s servers.
Once that’s done, you'll need to finalise the setup inside of Weavely.
## Step 2: Add Your Custom Domain in Weavely
To get started, go to **Settings → Team Settings** in your Weavely dashboard. Scroll to the **Custom Domain** section.
Enter the domain or subdomain you'd like to use (e.g. `feedback.mycompany.com`) and press **Add Custom Domain**. Weavely will then check whether your DNS settings are correctly configured.
## Step 3: Share Forms Using Your Custom Domain
Once your custom domain is connected, you can begin using it to share your forms.
Just replace the default domain (`forms.weavely.ai`) with your custom one, keeping the form ID the same.
For example:
* Default: `https://forms.weavely.ai/abc123`
* Custom: `https://feedback.mycompany.com/abc123`
This gives your users a more seamless, branded experience.
# How to Embed a PDF in a Weavely Form
Source: https://help.weavely.ai/features/embed-pdf
Learn how to embed a PDF in your forms with Weavely AI. Perfect for surveys, feedback forms, or custom data collection with embedded content.
You can embed a PDF directly into your Weavely form, allowing users to view documents like product specs, guides, or legal disclaimers without leaving the form experience. This tutorial walks you through embedding a PDF from Google Drive and optimizing how it's displayed in your form.
If you haven't already, upload your PDF to [Google Drive](https://drive.google.com). Open the PDF by double-clicking and select \*\*"Open in new tab" \*\*from the three-dot menu. Within this new tab, click the three-dot menu (it's weird we know) and choose **"Embed item"**.
Copy the HTML `
In your Weavely form, add an **Embed HTML** element. Open the element's settings pane and copy-paste the `
If the embedded PDF appears too small or scroll-heavy, you can adjust the layout. Go to the **Theme Editor** in Weavely. Under **Advanced Settings**, increase the **Form Width** to give the PDF more space and add the following **Custom CSS** to adjust the aspect ratio:
```css theme={null}
.embed-html {
width: 100%;
height: 100%;
aspect-ratio: 1 / 1;
background: var(--surface-color);
overflow: auto;
}
```
# Embedding Your Form on a Website
Source: https://help.weavely.ai/features/embeddings
Need your form to be integrated into a website? Here's how!
So you’ve crafted the perfect Weavely form and now you want to drop it into your website.
Good news: it takes *two* tiny snippets and about 90 seconds of effort,whether you want the form **embedded right in the page** or **popping up on cue**. You'll find both options under the *Share* tab while editing your form.
## Option 1: Embedded Form
**What is it:** The form lives *inside* the page layout. Like a regular section, card, or sidebar.
**Why you'd use it:** Great for contact pages, product wait-lists, or anywhere you want the form to feel native to the flow of the content.
To embed a form into a website you'll need to complete two steps. First, paste the Weavely.ai *\
```
You'll need to paste this code into the *\* section of your site's settings.
## Design-Friendly Integration
You don’t need to modify your actual Figma site design. The popup sits on top of your published site and opens after a short delay (or any custom trigger you define). It can match your site’s color scheme, font, and layout with styling from Weavely (which also supports custom CSS).
You can also:
* Match the popup form's colors to your Figma theme
* Trigger the popup on scroll, after inactivity, or on button click
* Set mobile-specific full-screen modes
## What Happens with Responses?
All submissions go straight into your Weavely dashboard. From there, you can:
* View form results in real time
* Trigger automations via Zapier or Make
* Setup [webhooks with our API](/developers/webhooks) for custom backends
* Send data to Google Sheets, Airtable, Mailchimp, and more
# AI-Generated Forms for Framer
Source: https://help.weavely.ai/guides/embeds/framer
Want to add interactive, AI-powered forms directly into your Framer website? With the Weavely plugin, you can easily embed custom forms into Framer.
This guide will walk you through using the **Weavely.ai** plugin to add forms to your Framer site, generate new forms using AI, and adjust everything to match your site’s style.
Open your Framer project and search for the **Weavely** plugin in the plugin menu.
Once opened, the plugin will ask for a **form URL**. This is where you paste the URL of any published Weavely form. When added, the form will render directly on your Framer canvas ... ready to publish!
Alternatively, you can also embed an example form if you first want to see how it works. Don't worry, you can definitely design better-looking forms than this one 😉
To create a custom form, head over to [weavely.ai](https://www.weavely.ai) and click the “Start for Free” button.
Inside the editor:
* On the left, you’ll see a chat-style interface to generate forms with AI.
* On the right, you’ll see the form being built in real-time.
You can:
* Describe your form in plain language (e.g., “I need a contact form for my web agency. Make it somewhat funny.”). The AI will generate questions, pages, and even a visual theme.
* Ask the AI to tweak questions, reorder elements or add pages.
* Ask the AI to add conditional logic rules (e.g. show/hide questions or pages).
* Ask the AI to change the design of the form.
Of course you can also access all of this functionality outside of the AI editor by toggling "manual mode" in the top bar.
Return to Framer and paste the published form’s URL into the Weavely plugin. The form will appear on the canvas as a component.
Simply drag-and-drop the component into your design and publish your Framer site. The form is now live and ready to accept responses!
## 📈 What Happens After Visitors Submit?
Once embedded, Weavely handles all form logic and data collection. You can:
* View **responses and analytics** directly inside Weavely.
* **Integrate** with tools like Google Sheets, Notion, Salesforce, HubSpot or get email notifications.
* Apply **conditional logic**, customize design, or edit questions anytime.
Check out our [Help Center](https://help.weavely.ai/) section for an overview of our features and how to use them.
# How to Add a File-Upload Form to Framer with Weavely
Source: https://help.weavely.ai/guides/embeds/framer-file-upload
Add a file upload element to your form in Framer to effortlessly collect document from website visitors. Available for free!
Want to add a file upload element to a form on your Framer website? With Weavely's AI form builder and the official Framer plugin, it's fast and effortless.
To create a custom form, head over to [weavely.ai](https://www.weavely.ai) and click the “Start for Free” button.
Inside the editor:
* On the left, you’ll see a chat-style interface to generate forms with AI.
* On the right, you’ll see the form being built in real-time.
You can:
* Describe your form in plain language (e.g., “I need a contact form for my web agency. Make it somewhat funny.”). The AI will generate questions, pages, and even a visual theme.
* Ask the AI to tweak questions, reorder elements or add pages.
* Ask the AI to add conditional logic rules (e.g. show/hide questions or pages).
* Ask the AI to change the design of the form.
Of course you can also access all of this functionality outside of the AI editor by toggling "manual mode" in the top bar.
This step might be redundant, depending on how you prompted AI in the first step. In case your form doesn't contain a file upload element after Step 1, just go ahead and ask the AI to add it. For example:
> Add a file upload element so my respondents can upload their portfolio to my website.
Once you're satisfied with your form, go ahead and press the big blue *"Publish"* button at the top right of the screen. Don't forget to copy the form's URL, you'll need it in the next step 😉
Open your Framer project and search for the **Weavely** plugin in the plugin menu.
Once opened, the plugin will ask for a **form URL**. This is where you paste the URL of any published Weavely form. When added, press "Add to Canvas" and the form will render directly on your Framer canvas ... ready to publish!
# How to Add a Form with Conditional Logic to Your Framer Website
Source: https://help.weavely.ai/guides/embeds/framer-logic
Embed a custom AI-powered form with conditional logic into your Framer site using Weavely. Fully responsive and easy to set up in minutes.
Want to add smarter forms to your Framer site? In this guide, we’ll walk through how to use [Weavely.ai](https://www.weavely.ai), an AI-native form builder, to create a form with conditional logic (e.g. showing and hiding form elements, skipping pages, etc.) and embed it in your Framer project using the official Weavely AI Forms plugin.
To create a custom form, head over to [weavely.ai](https://www.weavely.ai) and click the “Start for Free” button.
Inside the editor:
* On the left, you’ll see a chat-style interface to generate forms with AI.
* On the right, you’ll see the form being built in real-time.
You can:
* Describe your form in plain language (e.g., “I need a contact form for my web agency. Make it somewhat funny.”). The AI will generate questions, pages, and even a visual theme.
* Ask the AI to tweak questions, reorder elements or add pages.
* Ask the AI to change the design of the form.
Of course you can also access all of this functionality outside of the AI editor by toggling "manual mode" in the top bar.
Similarly to building your form, you can add conditional logic simply by prompting the AI to do so in the chat. For example:
> Only make question X visible if the user has typed an answer for question Y.
Or even
> Skip page 2 if the user has responded "No" to question X on page 1.
You can also manually add these conditional logic rules or tweak the ones generated by AI. [Here's a short tutorial on how to do this](/features/skip-logic).
Once you're satisfied with your form, go ahead and press the big blue *"Publish"* button at the top right of the screen. Don't forget to copy the form's URL, you'll need it in the next step 😉
Open your Framer project and search for the **Weavely** plugin in the plugin menu.
Once opened, the plugin will ask for a **form URL**. This is where you paste the URL of any published Weavely form. When added, press "Add to Canvas" and the form will render directly on your Framer canvas ... ready to publish!
# How to Add a Multi-Step Form to Framer with Weavely
Source: https://help.weavely.ai/guides/embeds/framer-multi-step
Add an AI-powered multi-step form to your Framer site using Weavely. Create pages, collect leads, and embed in seconds.
Want to embed a multi-step form in your Framer website? With Weavely's AI form builder and the official Framer plugin, it's fast and effortless.
To create a custom form, head over to [weavely.ai](https://www.weavely.ai) and click the “Start for Free” button.
Inside the editor:
* On the left, you’ll see a chat-style interface to generate forms with AI.
* On the right, you’ll see the form being built in real-time.
You can:
* Describe your form in plain language (e.g., “I need a contact form for my web agency. Make it somewhat funny.”). The AI will generate questions, pages, and even a visual theme.
* Ask the AI to tweak questions, reorder elements or add pages.
* Ask the AI to change the design of the form.
Of course you can also access all of this functionality outside of the AI editor by toggling "manual mode" in the top bar.
This step might be redundant, depending on how you prompted AI in the first step. In case your form is single page or in case you want to move some questions around you can continue chatting to our AI to have your form just right. For example:
> Seperate this form into X distinct pages, make sure that relevant questions are grouped together on the same page.
Once you're satisfied with your form, go ahead and press the big blue *"Publish"* button at the top right of the screen. Don't forget to copy the form's URL, you'll need it in the next step 😉
Open your Framer project and search for the **Weavely** plugin in the plugin menu.
Once opened, the plugin will ask for a **form URL**. This is where you paste the URL of any published Weavely form. When added, press "Add to Canvas" and the form will render directly on your Framer canvas ... ready to publish!
# How to Add a Contact Form to Your GoDaddy Website
Source: https://help.weavely.ai/guides/embeds/go-daddy
Create a free contact form with AI and embed it on your GoDaddy website in minutes. Works with GoDaddy Website Builder and WordPress, no coding required.
GoDaddy's built-in contact form options are limited, and if you've ever dealt with Contact Form 7 not sending emails on GoDaddy hosting, you know the frustration. With Weavely's [free AI form builder](/), you can skip all of that. Just describe the form you need in plain English, and have it live on your website in minutes.
Weavely is a **free AI form builder** with no limits on forms or responses. It works with GoDaddy Website Builder, GoDaddy WordPress sites, and any platform that supports HTML embed codes.
## What you'll need
* A Weavely account (free)
* A GoDaddy website (Website Builder or WordPress)
* About 2 minutes
## Create a contact form with the AI form builder
Head to [weavely.ai](https://weavely.ai) and start a new form. In the AI chat, describe what you need. Be as specific as you can, since the output quality depends on your prompt.
For example:
> I need a contact form for a coaching website. Make it multi-page and ask smart questions about coaching goals.
The AI form generator will create a complete, ready-to-use contact form in seconds, with fields for name, email, phone number, and whatever else fits your description.
Once the AI generates your form, review it and make any changes. You can:
* Add or remove fields by chatting with the AI
* Rearrange pages on multi-step forms
* Adjust branding, colours, and button styles
* Toggle required fields on or off
In this example, we'll remove the header visual since the form will live inside our existing website design.
When you're happy with the form, click **Publish** in the top-right corner. This makes your form live and gives you a shareable URL.
You can share that URL directly, but for embedding on your website we'll grab the embed code in the next section.
## Embed the form on your GoDaddy website
In the publish/share dialog, click the **Embed form** tab. You'll see two snippets of code.
Copy both snippets. You'll paste them together into your website editor.
Open your website in the GoDaddy editor. Navigate to the page where you want your contact form to appear.
Click **Add a Section**, then search for **HTML**. Add the HTML section to your page.
Click on the HTML section you just added. You'll see a code editor box. Paste **both** Weavely embed snippets into this box, one after the other.
Click **Publish** in GoDaddy to push your changes live. Your contact form is now embedded and active on your site.
Hit **Preview** to test it. Fill in the form and submit to make sure everything works.
Your contact form is now live. Responses are collected automatically inside Weavely.
## View and manage form responses
Every submission is stored inside the Weavely platform. Head to your form's dashboard to:
* **View individual responses** as they come in
* **See analytics** like completion rates, drop-off points, and trends
* **Generate smart reports** or download responses as PDFs
* **Export data** to tools you already use
## Set up contact form email notifications
Most website owners want an email alert every time someone fills in their contact form. You can configure this in Weavely under the [notifications settings](/integrations/email-notifications):
Go to your form's settings and enable **Submission emails**. Enter the email address where you'd like to receive notifications. You'll get an email with the full form response every time someone submits.
Enable **Respondent confirmation emails** to automatically let people know you received their enquiry. This builds trust and sets expectations for a reply. The email includes a summary of the data they entered.
This solves the common issue of contact forms not sending emails on GoDaddy. Since Weavely handles email delivery independently, you won't run into SMTP configuration problems or Contact Form 7 email issues.
## Connect form responses to Google Sheets, Salesforce, and more
If you want responses to land in an external tool, head to the **Integrations** tab on your form. For example, you can [send form responses to Google Sheets automatically](/integrations/google-sheets). Weavely also connects with:
* **Salesforce**: push leads directly into your CRM
* **HubSpot**: sync contacts and form data
* **Notion**: log responses in your workspace
* **Zapier / Make / n8n**: connect to thousands of other apps
## Works for any form type, not just contact forms
While contact forms are the most common use case, the AI form builder can generate any type of form for your GoDaddy website. You might use it to create a registration form for an upcoming event, a feedback survey to collect opinions from customers, a booking form for appointments, or an order form for products and services. Some users also build lead generation forms with conditional logic or job application forms with file uploads.
The embed process is exactly the same regardless of what you're building: describe it, publish, paste the embed code.
GoDaddy's free plan may have limitations on custom HTML sections. If you can't find the HTML option, you may need to upgrade your plan.
## Frequently asked questions
GoDaddy Website Builder includes a basic contact section, but it's limited in what you can customise. It doesn't support multi-step forms, conditional logic, or advanced field types. Using an AI form builder like Weavely gives you much more flexibility and you can create any type of form, not just a simple contact page.
Add an HTML section to your page in the GoDaddy editor (click "Add a Section" and search for "HTML"), then paste in the embed code from your form builder. Weavely generates the embed code for you automatically, so just copy and paste both snippets. The form will be fully fillable and mobile-responsive once published.
This is usually caused by SMTP restrictions on GoDaddy's hosting, especially if you're using WordPress plugins like Contact Form 7. A common workaround is to use a standalone form tool like Weavely, which handles email delivery on its own servers. You can set up both submission notifications and respondent confirmations without touching any server-side email settings.
Yes. Weavely is free to use with no limits on forms or responses. You can create a contact form with AI, customise it to match your branding, embed it on your GoDaddy site, and collect unlimited responses, all without paying. The only requirement on the free plan is a small "generated by Weavely AI" badge on the form.
# How to Embed a Custom AI Form into Google Sites
Source: https://help.weavely.ai/guides/embeds/google-sites
Learn how to embed a custom AI-generated form into your Google Sites page using Weavely.
Weavely makes it easy to build beautiful, logic-rich forms using AI—and just as easy to embed them into your Google Sites page. In this tutorial, we’ll walk through how to create a lead generation form and integrate it into a Google Site, with tips to make sure it looks great on both desktop and mobile.
To start, head to [Weavely.ai](https://weavely.ai) and generate your form using a natural-language prompt like:
> “I need a lead generation form for my agency website. It should qualify potential projects.”
Weavely will create a form with relevant questions automatically: project name, service interest, budget, timing, and more.
You can:
* Edit any question manually
* Add more fields or pages
* Customize the design (fonts, colors, borders, button style)
* Use Weavely’s AI styling based on your brand or website design
*All core features are free, including unlimited responses. The only paid feature is removing the “Powered by Weavely” badge.*
Once your form looks the way you want:
1. Click **Publish**.
2. Go to the **Share** tab.
3. Copy the standalone **form URL** (not embed code, just the plain URL).
You can test it in a new tab to confirm it loads the full form page. But trust us, it does 😉
1. Open your Google Sites page and navigate to the section where you want to insert the form.
2. Scroll to the bottom and click the **Embed** option from the sidebar.
3. Paste your Weavely form’s URL into the **"By URL"** tab.
4. Choose the **“Whole page”** display option.
5. Click **Insert**.
You’ll now see the live form appear inside your Google Site.
## Optimizing Layout for Desktop & Mobile
Google Sites preserves the aspect ratio of your embedded form, which can cause layout issues. Especially on mobile!
### Common Issues:
* **Scrollbars on desktop** if the form is too tall.
* **Tiny, squished forms on mobile** if the aspect ratio isn’t mobile-optimized.
### Workaround:
* Resize the embed container manually by dragging the edges.
* For **mobile**: Make the embed container **narrower and taller**.
* For **desktop**: Fill horizontal space by placing an **image** next to the form.
For example, this is how we tackled the issue in our example video:
It’s a balancing act, but with a bit of tweaking, you can get a good result on both devices.
## Summary
You now have a beautifully styled, fully functional form built with Weavely’s AI, embedded directly in your Google Site with no coding required. While Google Sites has a few layout quirks, with the right tweaks your form will look great and capture leads effectively.
Need more styling flexibility or advanced logic? You can always go back to Weavely to tweak themes, add logic conditions, or connect integrations like Google Sheets, Mailchimp, and more.
# AI-Generated Forms for Webflow
Source: https://help.weavely.ai/guides/embeds/webflow
Want to add interactive, AI-powered forms directly into your Webflow website? With the Weavely plugin, you can easily embed custom forms into Webflow.
This guide will walk you through using Weavely's [Webflow App](https://webflow.com/apps/detail/weavely-ai-forms) to add forms to your Webflow site, generate new forms using AI, and adjust everything to match your site’s style.
Open your Webflow project and launch the **Weavely** app from the designer.
Select a **div or container** where you want to embed the form. The app will ask for a form URL, which you'll get from Weavely after creating your form.
Alternatively, you can embed an **example form** first to see how it works. Simply click the example form button, and a sample form will be inserted into your selected container. Don't worry, you can definitely design better-looking forms than this one 😉
The form appears as a placeholder in the Webflow designer. The actual form will only render on your published website.
To create a custom form, head over to [weavely.ai](https://www.weavely.ai) and click the "Start for Free" button.
Inside the editor:
* On the left, you'll see a chat-style interface to generate forms with AI.
* On the right, you'll see the form being built in real-time.
You can:
* Describe your form in plain language (e.g., "I need a contact form for my website. Keep it very basic, three questions."). The AI will generate questions, pages, and even a visual theme.
* Ask the AI to make it multi-step (e.g., "Actually, I want this to be multi-step. Make sure we have different questions on different pages.")
* Ask the AI to adjust the design (e.g., "I want the background to be transparent and I want the top visual to be gone.")
* Ask the AI to add conditional logic rules (e.g., "I only want to show the message field if somebody provided an email address.")
Of course you can also access all of this functionality outside of the AI editor by toggling "manual mode" in the top bar.
Once you're happy with your form, click **Publish** and copy the form URL.
Return to Webflow and paste the published form's URL into the Weavely app.
Click **"Add to Design"** and the form will be embedded in your selected container.
The form appears as a placeholder in the Webflow designer. The actual form will only render on your published website.
Publish your Webflow site. The form is now live and ready to accept responses!
Need to update your form? Simply edit it in Weavely, click Publish, and refresh your Webflow website. The changes appear automatically—no need to update URLs or republish your Webflow site!
## 📈 What Happens After Visitors Submit?
Once embedded, Weavely handles all form logic and data collection. You can:
* View **responses and analytics** directly inside Weavely.
* **Integrate** with tools like Google Sheets, Notion, Salesforce, HubSpot or get email notifications.
* Apply **conditional logic**, customize design, or edit questions anytime.
# Weavely.ai - Use Cases & Examples
Source: https://help.weavely.ai/guides/examples-cover
Learn how to apply Weavely.ai to practical use cases through some curated examples
# Finding Your Way Around Our Guides
We've divided our help center in catogeries, here's an overview of what to find where
How to use Weavely for various scenarios.
Learn how to use Weavely in your favourite website builder.
# Auto-Generate Post-Meeting Surveys with n8n and Weavely
Source: https://help.weavely.ai/guides/use-cases/auto-generate-post-meeting-surveys-with-n8n-and-weavely
Learn how to automatically generate tailored post-meeting surveys from your Google Meet notes using an n8n AI agent and the Weavely MCP.
Most meetings end with good intentions and no follow-through. A post-meeting survey is the simplest way to capture feedback while the discussion is still fresh, but nobody sends them manually because the effort is not worth it for every call.
This guide shows you how to build an n8n workflow that does it automatically. When a meeting ends, the workflow reads your Google Meet notes, generates tailored survey questions using an AI agent, builds the form via the Weavely MCP, and sends it to all attendees after a quick Slack approval.
You can also use our free template here: [https://n8n.io/workflows/15095](https://n8n.io/workflows/15095)
## What you need
* Google Workspace Business Standard or higher (required for Gemini meeting notes)
* OpenAI API key
* Weavely account — free at [weavely.ai](https://weavely.ai)
* Slack workspace connected to n8n
* Gmail account connected to n8n
## How the workflow works
The full flow looks like this:
1. Google Calendar detects when a meeting ends
2. Waits 10 minutes for Gemini to generate and attach notes to the event
3. Re-fetches the event and extracts the Gemini notes doc
4. An AI agent reads the notes and generates 5 to 7 tailored survey questions
5. The Weavely MCP builds and publishes the form
6. A Slack message is sent to the organiser with the form link and Approve / Reject buttons
7. On approval, all attendees receive a branded email with the survey link
## Set up the workflow
Start by importing the template into your n8n instance. You can find the template in the n8n template library (currently pending approval, you'll need to build this manually based on the video).
Open the **Configuration** node at the start of the workflow. Update the two values:
* `calendarId`: your Google Calendar email address (e.g. `you@yourcompany.com`)
* `slackUserId`: your Slack member ID
To find your Slack member ID, open Slack, click your name in the top left, select **Profile**, click the three dots, and choose **Copy member ID**.
Connect the following credentials in each node. n8n will prompt you the first time you open each one:
* **Google Calendar Trigger** and **Get an event**: connect your Google Calendar account
* **Get a document**: connect your Google Docs account
* **OpenAI Chat Model**: add your OpenAI API key
* **Slack**: connect your Slack workspace
* **Send a message**: connect your Gmail account
The Weavely MCP Client does not require authentication. It connects directly to `https://mcp.weavely.ai/mcp` without credentials.
For the Approve and Reject buttons to work inline in Slack (rather than opening a browser window), you need to enable Interactivity in your Slack app settings.
1. Go to [api.slack.com/apps](https://api.slack.com/apps) and open your Slack app
2. Click **Interactivity and Shortcuts** in the left sidebar
3. Toggle Interactivity on
4. Set the **Request URL** to your n8n webhook-waiting URL
Your webhook-waiting URL follows this format:
```text theme={null}
https://your-n8n-instance.com/webhook-waiting/[webhook-id]
```
You can find the exact URL in the **Send message and wait for response** node once the workflow has run at least once.
Once credentials are connected and Slack interactivity is configured, toggle the workflow to **Active** in n8n.
The workflow now fires automatically whenever a calendar event matching the word "Meeting" ends. You can change this match term in the Google Calendar Trigger node to match your own naming conventions.
## How a survey gets generated
When a meeting ends, the workflow waits 10 minutes to give Google time to generate and attach the Gemini notes doc to the calendar event. It then looks for an attachment titled **"Notes by Gemini"** on the event. If found, it reads the full document.
The AI agent receives the meeting notes alongside a prompt that instructs it to generate 5 to 7 survey questions directly based on the topics discussed. It is not asked to generate generic meeting feedback questions. The questions reflect the actual content of the meeting: decisions made, action items assigned, topics covered.
The agent then uses the Weavely MCP tools to build and publish the form automatically. A copy of the form is created in Weavely's system and a shareable link is returned.
## The Slack approval step
Once the form is ready, you receive a Slack DM with the claim link and two buttons: **Approve** and **Reject**.
Before clicking Approve, open the claim link. This brings you into Weavely where you can review the generated survey, make any edits using Weavely's AI editor if needed, and publish the form to your account. If you do not have a Weavely account yet, you will be prompted to create one for free.
Once the form is published, come back to Slack and click **Approve**. The workflow resumes and sends the survey link to all meeting attendees by email.
If the survey does not look right, click **Reject** and the workflow stops without sending anything.
## Viewing responses
After attendees fill in the survey, responses appear automatically in your [Weavely dashboard under the **Results** tab](/get-started/smart-insights-analyze-survey-results-with-ai).
From there you can:
* View responses directly in Weavely
* Export to Google Sheets, Airtable, HubSpot, or any other tool via Weavely's integrations
* Set up automated workflows using Weavely's n8n or Zapier integrations to route responses wherever you need them
## Customising the workflow
The template is designed to be a starting point. Common adjustments:
**Different calendar or meeting tool:** Swap the Google Calendar Trigger for a Calendly trigger, a Zoom webhook, or any other calendar node n8n supports. The rest of the workflow stays the same.
**Different notification channel:** Replace the Slack node with a Microsoft Teams node, a Telegram node, or an email if you prefer approvals by email.
**Different AI model:** The template uses `gpt-4.1-mini` for cost efficiency. Swap the OpenAI Chat Model node for Claude, Gemini, or any other model supported by n8n if you want different output quality or cost characteristics.
**Adjust the survey questions:** Edit the prompt in the AI Agent node to change the number of questions, the question types, or the focus areas. The current prompt targets outcomes, decisions, and action item clarity.
**No Gemini notes:** If your Google Workspace plan does not include Gemini meeting notes, you can still use this workflow. Remove the **Filter Meeting Notes File** and **Get a document** nodes, and pass the meeting title and attendee list directly to the AI Agent instead. The questions will be less tailored but still useful for recurring meetings with predictable content.
# How to Create AI-Powered Lead Generation Forms and Sync Leads into HubSpot Using Weavely.ai
Source: https://help.weavely.ai/guides/use-cases/hubspot-lead-gen
Looking to streamline your lead generation process with AI? Here's how to generate leads with Weavely.ai and HubSpot.
Capturing and managing high-quality leads efficiently can be a challenge. Especially if you're dealing with manual form creation and CRM integrations. In this guide, you'll discover how Weavely.ai lets you effortlessly create powerful, multi-page lead generation forms using AI, and seamlessly integrate those leads directly into your HubSpot CRM.
## Generating Your Lead Generation Form with AI
Start by clearly describing the lead generation form you need. With Weavely.ai, you can either type your description, speak directly to the AI, or even upload supporting documents.
For example:
```
I need a lead generation tool for an AI form builder. I want to know what kind of form builder people are using today—use a dropdown populated with the top players in the field. I'm also interested in what they currently lack as functionality in their current tools. Also, ask any other questions that you think are relevant for a lead generation form. I want it spread across multiple pages.
```
Weavely instantly generates a structured form (see gif below) that includes:
* A dropdown pre-filled with top form builders currently used.
* Questions about missing functionality.
* Additional qualifying questions (e.g., other tools used).
* Essential contact fields like name, email, and company name.
## Further Customize Your Form (Optional)
Once the AI-generated form is ready, you can enter the manual editor to further customize it:
* Adjust form questions and page structure.
* Apply your branding (fonts, colors, styles).
* Set up advanced logic to skip or show questions conditionally.
Although powerful, customization is optional. Weavely.ai’s generated forms are ready-to-use immediately.
## Integrate Your Form with HubSpot CRM
Effortlessly sync your form submissions directly into your HubSpot CRM to streamline your lead generation process:
1. Open the **Integrations** tab in Weavely.ai.
2. Select **HubSpot** and sign in (single sign-on available).
3. Choose the HubSpot account you'd like to integrate.
4. Map essential form fields to HubSpot contact properties, such as:
* **First Name**
* **Last Name**
* **Email Address**
You can also map additional fields depending on your HubSpot setup. Check out this dedicated tutorial if you're stuck:
## Publish and Share Your Form
Now you're ready to collect leads:
* Click **Publish** to activate your form.
* Share the standalone form via a direct link.
* Embed the form directly onto your website or as a popup.
To ensure everything works smoothly:
* Fill out your form like an actual lead would.
* Submit the form.
* Visit HubSpot and refresh your contacts page.
You’ll instantly see the newly submitted lead created with all the mapped data accurately captured.
## Why Choose Weavely.ai for Lead Generation?
Traditional lead gen workflows can be cumbersome:
* Time-consuming manual form setup.
* Complicated integrations requiring technical skills.
* Manual data entry and synchronization.
With Weavely.ai, you get:
* Rapid, AI-driven form creation tailored exactly to your needs.
* Effortless, automatic HubSpot integration.
* Instant lead capture and management, reducing manual overhead.
This workflow lets you focus on what matters most ... turning leads into customers!
# How to Automatically Send Form Responses to Google Sheets Using n8n and Weavely.ai
Source: https://help.weavely.ai/guides/use-cases/n8n-google-sheets
Build a form with AI, connect it to n8n, and automatically send every response to Google Sheets. No manual data entry, no copy-pasting. Here's how to set it up in minutes.
Collecting form responses in a spreadsheet is one of the most common automation use cases — whether it's event registrations, lead capture, or feedback surveys. But manually copying data from forms into Google Sheets gets old fast. In this guide, you'll learn how to build a form with AI using Weavely.ai, connect it to n8n, and have every submission automatically appear as a new row in Google Sheets.
## Create Your Form with Weavely AI
Instead of manually building a form field by field, you can describe what you need and let Weavely generate it for you. Just type a prompt describing your form and Weavely will create a complete, ready-to-use form in seconds.
For example:
```
Registration form for my birthday party
```
Weavely instantly generates a structured form that includes fields for name, email, number of guests, and dietary restrictions, plus a thank you page.
From there, you can keep iterating through conversation. In this example, we asked Weavely to make the background more fun and birthday-themed, and it updated the visuals accordingly. You can tweak questions, styling, layout, and more, all through natural language prompts.
## Set Up the n8n Workflow
With your form ready, the next step is creating an n8n workflow that listens for new submissions. This uses the Weavely community node, a verified node you can install directly in n8n.
**Prerequisites:** You'll need community nodes enabled in your n8n admin panel. n8n recently made this available for cloud-hosted plans as well (still in beta at time of recording). For more detail on this step, see our [n8n integration guide](/integrations/n8n).
Once community nodes are enabled:
1. Create a new workflow in n8n.
2. Search for **Weavely** in the trigger list and add it to your workflow.
3. Set up your credentials by pasting a **personal token** from Weavely (found under *Settings → Personal Tokens* in the Weavely dashboard).
4. Select your **team** and then pick the specific **form** you want to monitor.
If your form doesn't appear in the dropdown, try closing and reopening the trigger node, it should show up after that.
## Test the Trigger
Before wiring up Google Sheets, it's worth testing that the trigger works. Press **Execute Step** in n8n, then head over to your published form and submit a test response.
Once submitted, n8n will pick up the response and display the output data. This includes each answer's question label, value, and question ID. This confirms the connection is working and shows you exactly what data is available to map to your spreadsheet.
## Connect Google Sheets and Map Your Columns
Now for the final piece: sending that form data into a Google Sheet.
1. Prepare a Google Sheet with columns matching your form fields (e.g. Name, Email, Guests, Diet).
2. Add the built-in **Google Sheets** node to your n8n workflow after the Weavely trigger.
3. Select your Google Sheets document and the specific sheet tab.
4. n8n will fetch the column headers. From there, map each column to the corresponding form response value by dragging the fields from the Weavely trigger output.
Once the mapping is done, save your workflow and set it to **Active**. From this point on, every form submission will automatically add a new row in your Google Sheet.
To verify everything works end-to-end:
* Reload your published form and fill in a fresh test submission.
* Submit the form.
* Check your Google Sheet. The new row should appear within seconds.
* You can also confirm the execution in n8n under the workflow's execution log.
## Taking It Further
The workflow shown here is intentionally basic: form submissions go straight into Google Sheets. But because you're using n8n, you can extend this in many ways. Add AI processing steps between the trigger and the spreadsheet, send notifications to Slack when a new response comes in, or branch the workflow to update multiple destinations at once. The Weavely trigger gives you all the form data you need; what you do with it from there is up to you.
## Why Use Weavely + n8n for Google Sheets?
If you just need form responses in a spreadsheet, Google Forms does the job. But that approach has limits: rigid templates, limited customization, and no automation beyond the spreadsheet itself. Combining Weavely and n8n gives you:
* **AI-powered form creation**: describe what you need and get a complete form in seconds, instead of building it field by field.
* **A real automation layer**: n8n sits between your form and your spreadsheet, so you can add processing, filtering, notifications, or multi-step workflows.
* **Free and unlimited**: Weavely has no limits on forms or responses, and n8n's community edition is open-source.
For simple, one-off forms, Google Forms is fine. But when you want more control over both the form and what happens after someone hits submit, this stack is hard to beat.
# How to Generate PDF Reports from Form Responses with AI
Source: https://help.weavely.ai/guides/use-cases/pdf-reports
Generate dynamic PDF reports from AI‑powered form responses. Turn survey submissions into professional PDF reports automatically with Weavely.
Weavely lets you create powerful AI-generated forms. In this guide, we’ll show you how to take your form submissions, turn them into a beautifully formatted PDF, and automatically email that PDF either to the respondent or to yourself, all for free using [Make](https://www.make.com/).
## 🛠 Tools You’ll Need
* [**Weavely**](https://weavely.ai/) – Our AI-native form builder.
* [**Make**](https://make.com) – A no-code automation platform with a generous free tier.
* **Google Docs & Drive** – To create the PDF template and store documents.
* **Gmail** – Or any email service connected via Make.
Build your form using Weavely. You can use the AI prompt or build manually.
> Example: A contact form collecting name, email, phone number, and company.
Make sure your form includes an email field if you want to email the response to the user. For a quick overview of how Weavely works, check out our ["getting started" tutorial](https://help.weavely.ai/get-started/the-basics).
In Google Docs, create a template for the PDF. Use **double curly braces** to define placeholders for dynamic values, as follows:
```
Date: {{date}}
Name: {{full_name}}
Email: {{email}}
Company: {{company}}
```
For example, here's the template we created for our video tutorial.
Create a new scenario in Make. You'll need four modules in this scenario.
### Module 1: Watch Weavely Form Submissions
This module will trigger the automation when a new form response is submitted.
* Add: `Weavely > Watch Form Submission`
* Connect your Weavely account (follow the wizard).
* Select the correct **team** and **form**.
You can read our [dedicated tutorial](/integrations/make) if you need help setting up the Weavely module in Make.
### Module 2: Create Document from Template
* Add: `Google Docs > Create Document from Template`
* Connect your Google account.
* Choose your template document from Drive.
* Map the template placeholders to your form values:
* `{{date}}` → `Submission Date`
* `{{full_name}}` → `Full Name`
* `{{email}}` → `Email`
* `{{company}}` → `Company`
* Set a document name (e.g., `"Contact Form Submission"`).
* Choose the folder where the document will be saved.
### Module 3: Download a File
To convert the Google doc you created with module 2 into a PDF you'll need the Google Drive "Download a File" module.
* Add: `Google Drive > Download a File`
* Use the document ID from the previous module.
* Enable: `Convert Google Document to format → PDF`.
### Module 4: Send Email with Attachment
Finally, you'll need to send the report to someone. This could be yourself, or a respondent.
* Add: `Gmail > Send Email` (or another mail service).
* To: Use the respondent’s email address (from the Weavely response) or your own.
* Subject: `"Your Weavely Report"`
* Body: Optional – you can leave this blank or customize it.
* Attachment: The PDF file from the previous module.
1. Run your scenario.
2. Submit the form.
3. Check your email inbox – you (or the respondent) should receive a PDF.
The PDF will contain the form data, and any missing fields will be left blank.
## Summary
With Weavely and Make, you can:
* Generate a form with AI to capture data
* Use that data to populate dynamic templates
* Generate branded PDF reports
* Automatically email those reports to users or teammates
Perfect for reports, confirmations, receipts, onboarding forms, and more!
# How to Turn a PDF into a Fillable Online Form with AI
Source: https://help.weavely.ai/guides/use-cases/pdf-to-form
Need to turn an existing PDF into a fillable online form? Here's how!
If you’ve ever struggled to turn a dense PDF questionnaire or research doc into a clean, shareable online form, this guide is for you. With Weavely’s AI-powered form builder, you can upload a PDF and go from static content to fully interactive form in just a few clicks.
This is more than just automation. It’s a smoother way to collect, analyze, and act on data. Below, we’ll walk through how to extract questions from a PDF, style your form to match your brand, and set up automations that send your responses exactly where they need to go.
## Start with a Real PDF
Let’s say you’ve got a research survey or customer intake form, something already structured in a PDF, but not fillable or easy to distribute. For example, we'll be using the PDF shown below in this guide:
Weavely is able to automatically convert this pdf into a fillable form. Upon creating a new form, upload the pdf and let our AI do its magic.
Optionally, you can also provide a prompt to further tweak the result. For example:
```
Seperate categories in the document across diferent pages in the form.
```
Weavely will scan the document, extract the questions (including types like multiple choice, rating scales, or open-ended and even file uploads), and generate a fully working form. No manual copy-pasting required!
## Instantly Match Your Brand
You don’t need to know CSS or fiddle with color codes. You can also leverage our AI to automatically adapt your forms to the style you need. You can either provide stylistic instructions via a prompt, or upload an example image.
Weavely will auto-match:
* Your color palette
* Fonts (via Google Fonts)
## Review and Refine Manually (Optional)
We're not at the point where AI can do everything (yet). Sometimes you still want to add that human touch to your form or survey. Once AI has turned your pdf into a fillable form you can continue in our form editor to:
* Add additional questions or pages.
* Fine-tune the look and feel (e.g. roundings, accent colours, fonts, etc.).
* Add answer piping or skip-page logic.
* Create integrations (e.g. with Mailchimp, Google Sheets or others).
Everything stays editable, even after publishing!
## Set Up Email Notifications
Want to be notified when someone submits a response, or send them a receipt?
In the **Integrations → Email** tab:
* Add your email (or use "@" to select the form field with your respondent's address)
* Customize the subject and body with answer piping like:
```
Subject: New response from @[name]
Body: They rated brand trust as @[brand_trust] out of 5.
```
## Send Responses to Google Sheets
For better analysis or collaboration, you can connect your form to Google Sheets.
* Go to **Integrations → Google Sheets**
* Connect your Google account
* Map each form question to a column
Every new submission will show up as a new row, automatically.
## Share Your Form
When you're ready:
* Hit **Preview** to test the full experience.
* Go to the \*\*Share \*\*tab to get a link to your form (don't forget to hit the publish button first).
* Optionally, set up the form as a **popup** on your site or a \*\*standalone page \*\*(see tutorial video).
## Why This Flow Works
Turning PDFs into fillable forms used to mean:
* Manually rewriting questions
* Reformatting them for every channel
* Hand-styling the form
* Wasting time on email follow-ups and data exports
With Weavely, you:
* Reuse existing content
* Let AI handle conversion to a fillable form
* Match your look instantly
* Automate everything post-submit
Whether you’re a researcher, a startup, or a policy team, this workflow gets your form live, on-brand, and connected to your stack in minutes.
Want to try it with your own PDF?\
Head to [weavely.ai](https://weavely.ai) and upload your first file.
# How to Save Form Progress and Continue Later
Source: https://help.weavely.ai/help-center/features/autosave
Enable autosave to let users save their form responses and resume filling out your Weavely form anytime.
The autosave feature lets your respondents save their form responses automatically so they can leave and come back to continue filling out your form later. Their answers are stored in their browser's local storage, so they won't lose their progress.
To enable autosave responses, open your form and navigate to the **Settings** section, in the **General** sub-section. Toggle on the "*Autosave progress*" option.
When enabled, respondents can close the form at any time and their responses will be saved. When they return to the same form URL, their progress will be automatically restored so they can pick up where they left off.
**Note:** Responses are saved locally in the respondent's browser. If they clear their browser data or switch to a different device, their saved progress will not be available.
## Frequently Asked Questions
**Is autosave available on the free plan?**
Yes, the autosave responses feature is available to all Weavely users, including those on the free tier.
**Will respondents' answers be saved if they close their browser?**
Yes, their responses are saved in their browser's local storage and will be restored when they return to the form, even after closing their browser.
**Can respondents continue the form on a different device?**
No, autosaved responses are stored locally in their browser. If they switch to a different device or browser, they'll need to start fresh.
**What happens if a respondent clears their browser data?**
Clearing browser cache and cookies will also remove their saved form progress.
# How to Generate PDFs from Form Submissions with Orshot
Source: https://help.weavely.ai/help-center/integrations/collecting-data-and-responses/orshot
Automatically generate custom PDF certificates, tickets, and documents from Weavely form submissions using Orshot integration.
The [Orshot](https://orshot.com/) integration lets you automatically generate PDF documents from form submissions. When someone completes your form, their responses are sent to Orshot to create a personalized PDF based on your template. This works for certificates, tickets, receipts, and any custom document you need.
## Setting Up Orshot in Your Weavely Form
First, you'll need an Orshot account with a PDF template ready. In your Orshot account, go to **API Keys** and copy your API key.
In your Weavely form, navigate to the **Integrations** tab and click **Add** next to Orshot.
Paste your Orshot API key in the field and click **Connect to Orshot**. Your Orshot templates will automatically load.
## Mapping Form Fields to Your PDF Template
Once connected, select which Orshot template you want to use from the dropdown menu.
For each field in your Orshot template, you'll see a mapping field where you can specify what data to include. Click the **@** symbol to select form fields, or type literal text directly.
You can read more about mapping form fields in [this tutorial](/help-center/integrations/data-mapping).
Click **Create Integration** and republish your form. PDFs will now generate automatically for each new submission.
## Viewing Your Generated PDFs
After a form is submitted, the generated PDF appears in your Orshot account. Go to your certificate template and click **Renders** to see all generated PDFs.
## Frequently Asked Questions
**Do I need an Orshot account to use this integration?**
Yes, you'll need an active Orshot account and API key. You can sign up at orshot.com.
**Can I customize the PDF design?**
Yes, Orshot has pre-made templates and a PDF studio where you can design custom templates with your own branding, colors, and layout.
**Where can I see the generated PDFs?**
Generated PDFs appear in your Orshot account under the template's Renders section. Each form submission creates a new render.
**What types of PDFs can I generate?**
You can generate any type of PDF document including certificates, event tickets, receipts, reports, invoices, or custom documents designed in Orshot's PDF studio.
**Can I use multiple templates for one form?**
Currently, each integration supports one template. To use different templates, you can set up conditional logic in Orshot or create separate forms for each template type.
# How to Map Form Fields to Integrations in Weavely
Source: https://help.weavely.ai/help-center/integrations/data-mapping
Learn how to use Weavely's mapping functionality to connect your AI-generated forms with third-party tools like Notion, HubSpot, and Salesforce
Weavely's mapping functionality allows you to automatically send form submission data to various third-party tools like Notion, HubSpot, Salesforce, and more. This guide will show you how to map form fields to your integration destinations.
## Understanding Field Mapping
When you set up an integration, each column or field in your destination (e.g., a Notion database) will appear as a mappable field in Weavely. You can populate these fields in three ways:
1. **Static text** - Enter literal text that will be the same for every submission
2. **Form field data** - Pull dynamic data from form submissions using the `@` symbol
3. **Combined values** - Mix static text with form field data
## Step 1: Set Up Your Integration
Navigate to the **Integrations** section of your form and select the third-party tool you want to connect (e.g., Notion, HubSpot, Salesforce).
Once connected, select the specific database or destination where you want your form data to be sent. Weavely will then display all available fields from that destination.
## Step 2: Map Your Fields
For each field in your integration, you have several options:
### Option 1: Leave It Empty
If a field is optional in your destination system, you can leave it blank.
### Option 2: Enter Static Text
Type any text directly into the field. For example, you could always set a status field to `"New Lead"` for every submission.
### Option 3: Use Form Field Data
To insert dynamic data from your form:
1. Type the `@` symbol
2. Select the form field you want to use from the dropdown menu
3. The field reference will appear in the mapping
**Example:** For a "Name" field in Notion, you could select `@First Name` to populate it with the first name from each form submission.
### Option 4: Combine Text and Form Fields
You can mix static text with form field data to create custom formatting.
**Example:** To create a full name field formatted as "First / Last":
* Type `@` and select `First Name`
* Type `/` (or any separator you prefer)
* Type `@` again and select `Last Name`
This will result in entries like "John / Doe" in your destination system.
## Step 3: Save Your Integration & Test it
Once you've mapped all required fields, click \*\*Create Integration. \*\*Submit a test entry through your form to verify that:
* Data appears in your destination system correctly
* Field mappings are working as expected
* Any combined fields display the formatting you want
# ActiveCampaign
Source: https://help.weavely.ai/integrations/active-campaign
Send Weavely form responses straight into ActiveCampaign as contacts
Connect Weavely to ActiveCampaign to automatically send form responses into your ActiveCampaign contacts. Once it's set up, every submission is added as a contact, with your form fields mapped to contact properties.
**Before you start**, you'll need:
* A published Weavely form
* An ActiveCampaign account
## Step 1: Generate a personal token in Weavely
A personal token links your Weavely account to third-party tools like ActiveCampaign. if you don't know how to create one, head on over to the [dedicated tutorial](/integrations/personal-tokens) and come back afterwards (only takes a couple of seconds to complete).
## Step 2: Add Weavely in ActiveCampaign
In ActiveCampaign, go to **Settings → Integrations** and click on the **app directory** hyperlink.
Don't press "Add an integration", click on the **app directory** hyperlink instead
Search for **Weavely** and select the Weavely app.
Click **Add an account**. When prompted for a **personal token**, paste the token you copied from Weavely.
## Step 3: Choose your team and form
Once your token is accepted, Weavely and ActiveCampaign are connected. You can now select the team and the form that you want to synchronise with ActiveCampaign.
## Step 4: Map your form fields
Map each field on your form to an ActiveCampaign contact property. map your form's email field to the ActiveCampaign **Email** property. Other fields (like phone number, subject, or message) are optional. If you want to capture more data, create custom contact properties in ActiveCampaign first. They'll then be available to map to your form fields.
When your mapping looks right, click **Finish**. Your integration is live once the status shows **Connected**.
Your responses are always stored in Weavely too. The integration adds ActiveCampaign as a destination, it doesn't replace Weavely's own response storage.
# Send Form Responses to Airtable
Source: https://help.weavely.ai/integrations/airtable
Weavely's Airtable integration lets you connect your form to a table and automatically send new responses as rows.
## Step 1: Open the Integrations Tab
With the editor open, navigate to the *Integrations* tab and select the *Airtable* integration as shown below.
## Step 2: Link Your Airtable Account
Is this the first time you set up a Airtable integration? Then Weavely will first guide you through the steps to connect your Airtable account to Weavely. Just press *"Connect to Airtable"* to get started.
## Step 3: Map Form Fields to Table Columns
Once you've connected your Airtable account you'll be able to set up the integration for your form. In a first step you'll need to select the base and the table in which you want to collect submissions. In a second step you can specify how fields of your form correspond to table columns. The gif below showcases both these steps.
## **Changing Your Airtable Account or Resetting Your Connection**
If you ever need to reset your connection with Airtable, for instance to switch to a different account or reauthorize access, you can do so from your Weavely dashboard. Go to **Settings → Connected Accounts** and click the red **“Disconnect”** button next to Airtable. You can then reconnect with the correct account.
# Weavely Integrations
Source: https://help.weavely.ai/integrations/aoverview
Discover all the third-party tools with which Weavely.ai integrates.
Weavely Integrates with various third-party tools, here's an overview of the supported integrations:
## Building Forms and Surveys
Build forms and surveys from within your ChatGPT conversation.
Build forms and surveys from within your Claude conversation.
Build forms and surveys from within LLMs using our MCP server.
## Importing Existing Forms
Import a Google Form to Weavely
## Collecting Data and Responses
Automatically collect form responses in Google Sheets
Automatically collect form responses in Notion
Automatically collect form responses in Salesforce
Automatically collect form responses in Airtable
Automatically collect form responses in HubSpot
Automatically collect form responses in Zoho
Automatically collect emails responses in Mailchimp
## Automation Tools
Add Weavely forms in your Zapier workflows
Add Weavely forms in your Make scenarios
# How to Create Forms & Surveys with the Weavely MCP Server in Claude
Source: https://help.weavely.ai/integrations/claude
Use the Weavely MCP server to build, style, and publish forms or surveys directly in Claude — no coding required.
## What Is the Weavely MCP Server?
The **Weavely MCP server** lets Claude (or any AI client that supports the Model Context Protocol) build forms and surveys step by step — adding questions, styling, conditional logic, and more — all from a natural conversation. You get a **live preview URL** to follow along as Claude builds, and a publish link when you're ready to go live.
The Model Context Protocol (MCP) is an open standard that connects AI assistants like Claude to external tools. The Weavely MCP connector gives Claude the ability to create professional forms through conversation — including 25 element types, multi-page layouts, custom themes, and conditional logic — without writing a single line of code.
## How to Connect the Weavely MCP Server to Claude
There are two ways to connect Weavely to Claude Desktop. Choose the method that matches your account type:
### For Paying Claude Users
Navigate to \_Settings > Connectors \_ and press *"Add custom connector"*. In the modal that appears, give the integration a name (e.g. *"Weavely"*) and paste the following URL:
```text theme={null}
https://mcp.weavely.ai/mcp
```
Restart the Claude Desktop app and you're all set!
### For Free Claude Users
Free users need to manually edit the Claude Desktop config file:
1. Create or locate the config file:
* **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`
* **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
2. Add the following JSON snippet:
```json theme={null}
{
"mcpServers": {
"weavely": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.weavely.ai/mcp"
]
}
}
}
```
3. Restart the Claude Desktop app.
`npx` must be available in your terminal. On Windows, you may need to prefix the command with `cmd /c`.
## How to Build Forms and Surveys with Claude MCP
Simply tell Claude what kind of form or survey you need. Claude will create the form and share a **live preview URL** — open it in your browser and refresh anytime to see the latest changes.
You can iterate naturally:
* **"Create a customer feedback form with a star rating and a comment box"** — Claude creates the form and adds the elements
* **"Add a dropdown asking how they found us"** — Claude adds it to the existing form
* **"Make the rating required and change the comment placeholder"** — Claude updates the elements
* **"Use a dark theme with Inter font"** — Claude styles the form
* **"Only show the comment box when the rating is below 4"** — Claude adds conditional logic
The preview URL updates in real-time — just refresh your browser to see each change as Claude makes it.
Claude has access to **13 tools** covering the full form-building workflow: creating forms, adding and editing questions (25 element types including text fields, choice fields, ratings, matrices, file uploads, and more), multi-page forms, visual theming, conditional logic, and publishing.
## Publishing Your Form
When you're happy with the form, ask Claude to publish it:
> **"Publish my form"**
Claude will return an **editor URL**. Click it to open the Weavely editor where you can:
* **Create a free Weavely account** to claim full ownership of the form
* **Share the form** and start collecting responses
* **Set up integrations** — Make, Zapier, n8n, Google Sheets, HubSpot, Airtable, Notion
* **Configure email notifications** — get notified on each submission or send confirmation emails to respondents
* **Customize the social media preview** — Open Graph image, title, and description
* **Set a custom domain** or get **embed codes** for your website
* **Add images** to image-choice options or as content elements
The live preview URL you used during building is temporary — it cannot be claimed or published from. Always use the **publish** step to get your permanent form.
# Build forms and surveys in ChatGPT with Weavely
Source: https://help.weavely.ai/integrations/custom-gpt
Build forms and surveys from a prompt with the Weavely ChatGPT app, refine the design and logic in chat, then publish to collect responses inside ChatGPT.
Weavely has a ChatGPT app that lets you build working forms and surveys without leaving ChatGPT. Describe what you need, Weavely generates a live form, and you refine the questions, design, and logic right in the conversation. Simply publish to start collecting responses.
You need a ChatGPT account to use the app. You only create a free Weavely account at the end, when you publish your form and want to collect responses.
## Add the Weavely app to ChatGPT
In ChatGPT, open **Apps** and search for **Weavely**, listed as "Weavely Forms & Surveys"
Select **Connect**. ChatGPT asks you to approve a few permissions. You can allow it to reference your chat memories, but that isn't required to build a form — so you can skip it and select **Connect**.
Select **Start chat**, or open any new chat and choose **Weavely Forms & Surveys** from the **+ More** menu.
## Build your first form
Tell Weavely what you're collecting and any context that matters. The more detail you give, the better the result. For example:
> I need a feedback survey for my e-commerce products, which are sandals.
Weavely explains what it's going to build, then generates a fully functional preview you can try right away. Use the expand icon to open it full screen.
The preview is interactive. Fill it in and select **Submit** to see the thank-you screen, then reset it to try different answers and flows.
## Refine it in chat
Everything about the form can be changed by chatting with Weavely — no editor required.
**Change the design.** Ask for the look you want and Weavely updates the theme:
> Can you make the colors more beach-like, given that this is about sandals?
**Add or edit questions.** Ask Weavely to add, remove, or reword questions at any time.
**Add conditional logic.** Show a question only when it's relevant:
> Only show the sizing question if someone gives a star rating above two.
ChatGPT asks permission to change the form's logic, then shows an updated preview. Test it: a rating of 4 reveals the sizing question, while a rating below 2 hides it.
Treat it like a conversation. Keep refining the design, questions, and logic until the preview is exactly what you want before you publish.
## Publish and share
When you're happy with the preview, select **Share form**. Weavely opens the platform for the final step.
If you don't have a Weavely account yet, create one for free. Once you're in, copy your form's URL.
Share the link with respondents. As people submit, their answers appear under your form's results in Weavely.
## Do more in Weavely
The ChatGPT app gets you from idea to published form fast, but you can keep working in Weavely whenever you need to:
* **Keep editing** the theme, questions, and logic rules in the Weavely editor.
* **Send responses anywhere** with integrations like Google Sheets, Zapier, Make, and n8n.
## FAQ
Yes. You can create unlimited forms and collect unlimited responses for free.
Not to build and preview a form. You create a free account only when you publish and want to start collecting responses.
Yes. Ask in chat — for example, "only show this question if the rating is above two" — and Weavely updates the form's logic.
Responses appear in your form's results in Weavely, and you can forward them to tools like Google Sheets, Zapier, Make, or n8n.
# How to Set Up Email Notifications for Form Submissions
Source: https://help.weavely.ai/integrations/email-notifications
Learn how to send automatic email notifications on form submission. Set up confirmation emails for respondents and submission alerts for form owners.
Stay informed about every form submission and keep your respondents engaged with automatic email notifications. Weavely makes it easy to send submission alerts to yourself and confirmation emails to form respondents with just a few clicks.
## What Are Email Notifications?
Weavely offers two types of email notifications for your forms:
**Submission Emails** - Get an email notification sent to you (the form owner) whenever someone submits your form. The email includes a complete copy of all submitted responses, formatted and easy to read.
**Confirmation Emails** - Send an automatic email to the person who submitted your form, providing them with a summary of their responses. This serves as a receipt and confirms their submission was received.
## Setting Up Submission Emails (For Form Owners)
Submission emails notify you instantly when someone completes your form, allowing you to respond quickly and track form activity in real time.
### How to Enable Submission Emails
1. Open your form in the Weavely editor
2. Navigate to **Settings** in the top menu
3. Select **Notifications** from the left sidebar
4. Toggle on **Submission emails**
5. Your form's submission notifications are now active
Once enabled, you'll receive a nicely formatted email every time someone submits your form. The email includes all submitted data, making it easy to review responses without logging into your dashboard. An example of such an email is shown below.
### What's Included in Submission Emails?
Each submission email notification contains:
* Complete form responses from all fields
* Submission date and time
* Clean, formatted layout for easy reading
* All form data in a professional email format
## Setting Up Confirmation Emails (For Respondents)
Confirmation emails automatically send respondents a copy of their submission, providing them with a record of what they submitted and confirming their form was received successfully.
### How to Enable Confirmation Emails
1. Open your form in the Weavely editor
2. Go to **Settings** > **Notifications**
3. Toggle on **Confirmation emails**
4. Select which email field from your form should receive the confirmation
The confirmation email will be sent to whichever email address field you select. This means your form must collect an email address for this feature to work. An example of a confirmation email is shown below.
### Selecting the Email Field
If your form has multiple email fields, you can choose which one receives the confirmation email:
1. Click on the **Confirmation emails** setting
2. A dropdown will appear showing all email fields in your form
3. Select the appropriate email field
4. Save your changes
For most forms, you'll only have one email field, making this selection automatic.
### What's Included in Confirmation Emails?
Confirmation emails sent to respondents include:
* A summary of all their submitted responses
* Confirmation that their submission was received
* Professional formatting with your form branding
* A complete record they can save for their records
## Why Use Email Notifications?
Email notifications improve your form workflow and user experience:
**For Form Owners:**
* Get instant alerts when forms are submitted
* Review submissions directly from your inbox
* No need to constantly check your dashboard
* Respond quickly to time-sensitive submissions
* Track form activity in real time
**For Respondents:**
* Receive immediate confirmation of submission
* Get a copy of their responses for their records
* Builds trust and improves user experience
* Reduces follow-up questions about whether the form was received
* Provides transparency about what information was submitted
## Frequently Asked Questions
### Do I need an email field in my form for notifications?
You need an email field for **confirmation emails** (sent to respondents), but not for **submission emails** (sent to you as the form owner). Submission emails will go to your Weavely account email address by default.
### Can I customize the email content?
Currently, email notifications use a standardized format that includes all form field responses in a clean, professional layout. The content automatically updates based on your form fields.
### Will respondents see all my form data?
No. Confirmation emails sent to respondents only include the specific responses **they** submitted. They won't see responses from other users or any admin-only information.
### Can I send notifications to multiple email addresses?
Submission emails are sent to the form owner's email address. To share submissions with multiple team members, you can forward the notification emails or invite team members to access your Weavely dashboard directly.
### How quickly are notification emails sent?
Both submission emails and confirmation emails are sent instantly upon form submission. Respondents receive their confirmation within seconds of clicking submit.
### Can I turn off email notifications?
Yes. Simply toggle off either or both notification types in your form's Settings > Notifications panel. You can enable or disable notifications at any time.
### Will these emails go to spam?
Weavely's email notifications are sent through reliable email infrastructure to ensure high deliverability. However, recipients should check their spam folders if they don't see the email within a few minutes and mark it as "not spam" to ensure future emails arrive in their inbox.
# Figma to Web Form, Weavely Plugin
Source: https://help.weavely.ai/integrations/figma-to-web-form
Learn how to generate web forms from Figma designs using the Weavely Figma plugin
# Turn Figma Designs into Web Forms with the Weavely Plugin
The Weavely Figma plugin lets you transform static Figma designs into working, fillable web forms, all in a few clicks. Whether you're prototyping, building UX surveys, or collecting structured feedback from testers, this plugin helps you move from design to live form instantly.
## What the Plugin Does
With the plugin, you can select any Figma frames and turn them into a functioning web form powered by Weavely. It extracts both the **content** (like questions and labels) and the **visual theme** (colors, fonts, layout) from your design, then uses AI to generate a form that looks and feels like your mockup, but is fully interactive and shareable.
## How to Use the Plugin
You can open the plugin [here](https://www.figma.com/community/plugin/1255122665773297640/figma-to-web-forms). Or simply search for "Figma to web form" from within Figma.
Choose the frames that contain your form content. For example, in a UX survey, you might have multiple frames with radio buttons, input fields, or sliders. Once selected, hit **"Generate Form"** in the plugin panel.
The plugin uses AI to scan the content and layout of your design and begins building a form automatically.
You’ll get a real-time preview of your generated form inside the plugin. It’s interactive, with radio buttons, input fields, and submit actions. Just like a normal web form.
When you're satisfied, hit **“Publish Form.”** This opens the Weavely editor where you can:
* Refine questions or add new ones
* Apply advanced styling or change the layout
* Add conditional logic
* Integrate with third-party tools like Slack, HubSpot, Zapier, etc.
Once you’re happy with your final form, press **“Publish”** again and get a live URL to share or embed.
### Style Transfer from Figma
Basic theming — such as background color, accent colors, and font family — is extracted automatically. So if your Figma design has a deep red background and white buttons, your generated form will reflect that.
For advanced theming (custom layout, typography, brand assets), you can fine-tune everything from within the Weavely editor.
The plugin will not take into account your custom design or layout from within Figma.
***
# Create a form from a Google Doc
Source: https://help.weavely.ai/integrations/google-doc-add-on
Use the Weavely Google Docs add-on to turn any document into a ready-to-share form, without leaving Google Docs.
The Weavely Google Docs add-on lets you turn the questions in any Google Doc into a working form, right from inside the document. There is no copy-pasting and no manual form building: you open your doc, click a button, and Weavely's AI reads the content and builds the form for you in seconds.
This guide walks through the whole process, from installing the add-on to publishing and sharing your form.
You will need a Google account and a Google Doc that contains the questions or content you want to turn into a form. A free Weavely account is needed to publish, and you can create one during the publish step.
## Install and generate
Open the [Google Workspace Marketplace](https://workspace.google.com/marketplace/app/weavely_ai_forms_for_google_docs/790333446949?flow_type=2) and search for **Weavely** or **AI forms for Google Docs**. Open the listing, click **Install**, sign in with your Google account, and approve the permissions screen.
Once installed, the add-on is available across your Google Docs.
Weavely asks for permission on a **per-file basis**. It only reads the specific document you open it in, not your entire Google Drive.
Open the Google Doc that contains your questions, then click the **Weavely icon** in the right-hand sidebar to open the add-on panel.
Almost any document works: a survey brainstorm, a list of quiz questions, a product brief, or rough notes. The more clearly your questions are written, the better the result, but you do not need a specific format.
Click the **Generate form** button. Weavely reads through your document, pulls the title and any context you have written, and turns each question into the most suitable field type (multiple choice, dropdown, rating scale, short answer, and so on).
This usually takes a few seconds. When it finishes, you will see your generated form in the panel, ready to review.
Weavely chooses field types automatically. If you wrote something like "rate this from 1 to 5" in your doc, it will create a rating field. You can change any of these in the next step.
Anything you want to change, just describe it in plain language. For example, type "change the recommend score to a 1 to 10 scale instead of 1 to 5" and the field updates instantly.
You can also add **conditional logic** the same way. Ask something like "only show the follow-up question when someone selects a low score," and Weavely wires it up for you. There is no logic builder to configure.
When you are happy with the form, click **Publish**. You will get a shareable link you can send to anyone.
If you are not signed in to Weavely yet, you will be prompted to create a free account first. The free plan includes unlimited forms and unlimited responses.
# Importing Google Forms to Weavely
Source: https://help.weavely.ai/integrations/google-forms
Import your Google Forms into Weavely for free and instantly upgrade them with AI-powered customization, smart logic, and beautiful themes.
Weavely makes it effortless to upgrade your existing Google Forms with better design, advanced logic, and powerful integrations. In this guide, we’ll show you how to import a Google Form into Weavely and enhance it with styling, smart logic, and third-party tools.
To import your Google Form, create a new Weavely form. In the AI conversation panel click on "*Import a form*".
Before Weavely can import your Google Form, you'll first need to grant us the right access. Don't worry, it's a simple single sign-on process that you start by pressing *"Connect to Google Forms"* in the *"Import"* modal.
Make sure to connect the Google account which you used to create the form you want to import.
Once connected, you’ll be asked to provide a link to the form you want to import. Make sure you copy the Google Form’s editor URL. This is the one you use when editing the form, not the shareable URL you send to others. The editor URL typically ends with **/edit**. Paste that into the input field and click Import. For example:
```html theme={null}
https://docs.google.com/forms/d/1_s3nDl4TpXRBfWGbaZcZ4iHbgsGX1nvZqltI35aKuBU/edit
```
## **Changing Your Google Forms Account or Resetting Your Connection**
If you ever need to reset your connection with Google Forms, for instance to switch to a different account or reauthorize access, you can do so from your Weavely dashboard. Go to **Settings → Connected Accounts** and click the red **“Disconnect”** button next to Google Forms. You can then reconnect with the correct account.
# Send Form Responses to Google Sheets
Source: https://help.weavely.ai/integrations/google-sheets
Weavely's Google Sheets integration lets you connect your form to a spreadsheet and automatically send new responses as rows.
## Step 1: Open the Integrations Tab
With the editor open, navigate to the *Integrations* tab and select the *Google Sheets* integration as shown below.
## Step 2: Link Your Google Account
Is this the first time you set up a Google Sheets integration? Then Weavely will first guide you through the steps to connect your Google account to Weavely. Just press *"Connect to Google Sheets"* to get started.
The next steps are self explanatory, you've probably used them before if you've ever connected a Google account to something. Make sure to give Weavely the rights it needs by checking the permissions checkbox though:
## Step 3: Select Form Fields
By default Weavely will create a new Google Sheet for you which has a column for every form field in your form. You can also choose to only import a selection of form fields into your Google Sheet using the checkboxes.
Changes you make to your form will not automatically update the Google Sheet you created in the previous steps. In case you need to change your form after you've setup the integration we suggest you delete the integration and create a new one.
## **Changing Your Google Sheets Account or Resetting Your Connection**
If you ever need to reset your connection with Google Sheets, for instance to switch to a different account or reauthorize access, you can do so from your Weavely dashboard. Go to **Settings → Connected Accounts** and click the red **“Disconnect”** button next to Google Sheets. You can then reconnect with the correct account.
# How to Create Forms & Surveys with the Weavely MCP Server in Mistral AI
Source: https://help.weavely.ai/integrations/how-to-create-forms-and-surveys-with-the-weavely-mcp-server-in-mistral-ai
Use the Weavely MCP server to build, style, and publish forms or surveys directly in Mistral AI (Le Chat) — no coding required.
## What Is the Weavely MCP Server?
The **Weavely MCP server** turns Le Chat Mistral into a free AI form builder, letting you create, style, and publish forms and surveys through conversation without leaving your chat. Describe what you need, and Mistral builds it step by step. You get a **live preview URL** to follow along in your browser and a shareable link once you publish.
The Model Context Protocol (MCP) is an open standard that connects AI assistants to external tools. The Weavely MCP connector extends Le Chat Mistral with full form-building capabilities, including 25 element types, multi-page layouts, custom themes, and conditional logic, completely free with no coding required.
## How to Connect the Weavely MCP Server to Mistral
1. Open [Le Chat](https://chat.mistral.ai) and navigate to **Intelligence > Connectors**.
2. Click **"Add connector"**, select the "**Custom MCP Connector**" tab and paste the following server URL:
```text theme={null}
https://mcp.weavely.ai/mcp
```
3. Leave the authentication field empty. No authentication is required.
4. The description field is optional. Click **Connect**.
Weavely will appear in your connectors list and is ready to use straight away.
## How to Build Forms and Surveys with Mistral AI
Start a new chat and select the **Weavely connector** from your connector list. Then simply describe the form or survey you need and Mistral handles the rest. This MCP tutorial walks through a B2B lead generation form, but the same steps apply to any form or survey type.
Mistral will ask for your permission before creating anything outside the chat, then build the form and share a **live preview URL**. Open it in your browser and refresh at any point to see the latest version.
You can iterate naturally:
* **"I need a lead generation form for my B2B marketing agency"** - Mistral creates the form and suggests fields like company name, contact person, industry, and email
* **"Add those fields to the form"** - Mistral updates the form with the suggested elements
* **"Change the dropdown to a radio button"** - Mistral swaps the field type
* **"Add conditional logic"** - Mistral applies it to the relevant fields
* **"Can you come up with a nicer colour scheme?"** - Mistral reskins the form; just refresh the preview to see the result
The preview URL stays the same throughout. Refresh it anytime to see changes as Mistral makes them.
The more specific your initial prompt, the more tailored the form. A generic prompt like "a lead gen form" gives you a solid starting point; adding details like industry, audience, or specific fields gives you something closer to finished.
## Publishing Your Form
When you're happy with the form, either:
* Ask Mistral in the chat: **"Publish my form"**, or
* Click the **publish button** directly on the preview link
You'll be prompted to create a **free Weavely account** if you don't have one. Once inside the Weavely editor, Weavely's free AI form builder, you can:
* **Share your form** via a unique URL and start collecting responses
* **View and manage responses** in your Weavely dashboard
* **Set up integrations** - Google Sheets, Make, Zapier, n8n, HubSpot, Notion, and more
* **Further customise** the form with AI or manually using the Weavely editor
* **Embed the form** on your website or share it as a pop-up
The preview URL you use while building is temporary. It cannot be shared or used to collect responses. Always go through the publish step to get your permanent, shareable form URL.
# Send Form Responses to HubSpot
Source: https://help.weavely.ai/integrations/hubspot
Weavely's HubSpot integration lets you automatically create contacts in HubSpot upon form submissions.
## Step 1: Open the Integrations Tab
With the editor open, navigate to the *Integrations* tab and select the *HubSpot* integration as shown below.
## Step 2: Link Your HubSpot Account
Is this the first time you set up a HubSpot integration? Then Weavely will first guide you through the steps to connect your HubSpot account to Weavely. Just press *"Connect to HubSpot"* to get started.
## Step 3: Map Form Fields to Contact Properties
Once you've connected your HubSpot account you'll be able to set up the integration for your form. You can specify which fields of your form should be used to create the new contact in HubSpot as shown in the gif below. At the time of writing you can only create new contacts after a form submission. Looking to do something else? Reach out to [florian@weavely.ai](mailto:florian@weavely.ai) to tell us your use case and we'll add it to the roadmap!
## **Changing Your HubSpot Account or Resetting Your Connection**
If you ever need to reset your connection with HubSpot, for instance to switch to a different account or reauthorize access, you can do so from your Weavely dashboard. Go to **Settings → Connected Accounts** and click the red **“Disconnect”** button next to HubSpot. You can then reconnect with the correct account.
# Send Weavely Form Leads to Mailchimp
Source: https://help.weavely.ai/integrations/mailchimp
Grow your email list with every form submission with Weavely AI’s Mailchimp integration.
In this guide, we’ll walk you through how to connect a Weavely form to a Mailchimp list.
Start by opening the form you want to connect in the Weavely editor. Head over to the **Integrations** tab, where you’ll see **Mailchimp** listed among the available integrations. Click **Add**.
Next, you’ll be prompted to authorize the connection between your Weavely and Mailchimp accounts. Click the **Connect** button, which will redirect you to Mailchimp's login page. After logging in, Mailchimp will ask whether you trust the application, go ahead and approve the authorization by clicking **Allow**. Once complete, you’ll be redirected back into Weavely, and your accounts will now be linked.
With your Mailchimp account connected, you can now configure the integration by selecting which Mailchimp list should receive the new email addresses. If you only have one list, this step is straightforward. You’ll also be asked to select the appropriate email field from your form. This is particularly useful if your form contains multiple email inputs, as it ensures the correct one is used to create the contact in Mailchimp. Once you've made your selections, press **Create Integration** to finalize the setup.
## **Changing Your Mailchimp Account or Resetting Your Connection**
If you ever need to reset your connection with Mailchimp, for instance to switch to a different account or reauthorize access, you can do so from your Weavely dashboard. Go to **Settings → Connected Accounts** and click the red **“Disconnect”** button next to Mailchimp. You can then reconnect with the correct account.
# Connect Your Weavely Form to Make for Workflow Automation
Source: https://help.weavely.ai/integrations/make
Make (formerly Integromat) is an automation platform that lets you connect your Weavely form to hundreds of other apps like Slack, Gmail, Airtable, and more.
Here’s how to connect your Weavely form to Make in just a few minutes.
You'll need something called a *"personal token"* to connect you Weavely account to Make. To create this token, navigate to *Settings->Personal Tokens* in the dashboard. Once created you'll be able to copy and paste this token (i.e. a string of text) to Make in step 3.
To begin, open the Weavely form you want to automate and navigate to the **Integrations** tab. From there, select **Make** and click **Add**. This will open Make, where you’ll be prompted to install the Weavely connection. Simply select your organization and follow the steps to complete the setup wizard.
Start by creating a new scenario in Make. Add the **Weavely** module and choose the **Watch Form Submission** trigger. When prompted, create a new connection by pasting your personal token from Step 1. Then, select your Weavely team and specify the form you want to monitor. Once set up, your Make scenario will automatically listen for new form submissions.
Now that Make is listening for new form data, you can add any actions you like using one of Make’s many available integrations. For example, you might choose to send a message, create a record, or trigger an automation in a third-party tool when a form is submitted.
To personalize those actions, you can reference form responses (e.g. the respondent’s name or email) using dynamic values.
And that’s it! You’ve successfully connected Weavely to Make and automated your first workflow 🎉
# Weavely.ai MCP Server
Source: https://help.weavely.ai/integrations/mcp
Use our MCP server to connect Weavely to your favourite AI and LLM tools!
Weavely's MCP Server allows AI clients like **Claude**, **Cursor**, **Windsurf**, or any MCP-compatible agent to **build, style, and publish forms conversationally** — using standard [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) tools.
This guide walks you through what the Weavely MCP is, how it works, and how to configure it for any compatible AI client.
## What is an MCP Server?
MCP (Model Context Protocol) is a standard that allows AI models to **call tools** — like APIs or custom functions — by passing structured arguments.
Instead of hardcoding every integration, you provide a reference to an MCP server that **exposes tools dynamically**. The LLM then learns what tools are available and when to use them, all without manual plumbing.
## What Can You Do with Weavely MCP?
The Weavely MCP server gives your AI client **full control over the form-building process** — from creating an empty form to adding questions, styling it, adding conditional logic, and publishing.
The AI builds the form step by step while you follow along via a **live preview URL** that updates in real-time. When you're happy with the result, ask the AI to publish and you'll get a link to claim ownership.
For example:
> "Create a post-purchase NPS survey for new customers. Use a 0–10 rating scale, add a follow-up text area that only shows when the score is below 7, and style it with a clean dark theme."
The AI will:
1. Create the form and share a live preview link
2. Add a scale rating element and a conditional text area
3. Set up logic to show the text area only for low scores
4. Apply a dark color theme with clean layout
5. Publish when you ask — giving you an editor URL to claim full ownership
## Setup
Add the Weavely MCP server to your AI client's configuration:
```json theme={null}
{
"mcpServers": {
"weavely": {
"url": "https://mcp.weavely.ai/mcp"
}
}
}
```
This works with any client that supports **Streamable HTTP** MCP servers, including Claude Desktop, Claude Code, and Cursor.
If your client only supports stdio-based MCP servers, use the `mcp-remote` bridge:
```json theme={null}
{
"mcpServers": {
"weavely": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.weavely.ai/mcp"
]
}
}
}
```
`npx` must be available in your terminal. On Windows with a local agent, you may need to prefix with `cmd /c`.
## Tools
The MCP server exposes **13 tools** that cover the full form-building lifecycle:
### Form management
| Tool | Description |
| ------------------ | ------------------------------------------------------------------------------------- |
| `create_form` | Create a new form. Returns a `formId` and live preview URL. **Must be called first.** |
| `get_form_summary` | Get the current form structure — pages, elements, theme, settings |
| `publish_form` | Publish the form and get an editor URL to claim ownership |
### Elements
| Tool | Description |
| ------------------ | ----------------------------------------------------- |
| `add_element` | Add a question or content element to a page |
| `update_element` | Update an element's label, description, options, etc. |
| `remove_element` | Remove an element |
| `reorder_elements` | Move an element to a different position or page |
### Pages
| Tool | Description |
| --------------- | ------------------------------------- |
| `add_page` | Add a new page (for multi-step forms) |
| `remove_page` | Remove a page and its elements |
| `reorder_pages` | Reorder form pages |
### Styling & configuration
| Tool | Description |
| -------------- | -------------------------------------------------- |
| `set_theme` | Set colors, fonts, layout, and component styles |
| `set_settings` | Configure language, progress bar, auto-save, etc. |
| `set_logic` | Add conditional show/hide rules and event triggers |
### Supported element types
The `add_element` tool supports **25 element types**:
* **Input fields**: text, number, email, phone, URL, time, date, text area
* **Choice fields**: radio buttons, checkboxes, dropdown, ranking
* **Image choice**: multiple-choice with images (images assigned on platform after publishing)
* **Matrix**: grid questions with rows and columns
* **Rating**: star rating, scale rating, range slider
* **Display**: headings, paragraphs (with HTML support)
* **Media**: embedded HTML, audio, video
* **Special**: file upload, signature, single checkbox
## How It Works
Once the MCP server is connected, the AI sees all 13 tools and uses them automatically based on your requests.
**Example conversation:**
> **You:** Create a customer feedback form with a star rating, a comment box, and an email field. Make it look professional.
>
> **AI:** I'll create that for you. Here's your live preview: `https://forms.weavely.ai/abc-123` — you can open it now and refresh to see updates as I build.
>
> *(AI calls create\_form, then add\_element three times, then set\_theme)*
>
> **You:** Add a dropdown asking how they found us, with options for Google, Social Media, and Friend.
>
> *(AI calls add\_element with radio-buttons and options)*
>
> **You:** Looks great, publish it!
>
> *(AI calls publish\_form)*
>
> **AI:** Your form is published! Open the editor to claim it: `https://forms.weavely.ai/editor/xyz-456?publish=true`
The live preview updates with every change — you just refresh the page to see the latest version.
## After Publishing
Once you publish and claim your form on the Weavely platform, you get access to additional features that aren't available through the MCP:
* **Integrations**: Make, Zapier, n8n, Google Sheets, HubSpot, Airtable, Notion
* **Email notifications**: get notified on submissions or send confirmation emails
* **Social media preview**: customize Open Graph image, title, and description
* **Custom domain**: serve the form on your own domain
* **Embed codes**: embed the form on any website
* **Analytics**: view submissions and response data
For the full developer reference, see our [Forms API documentation](https://help.weavely.ai/developers/forms) and [llms.txt](https://help.weavely.ai/llms.txt).
# Connect Your Weavely Form to n8n for Workflow Automation
Source: https://help.weavely.ai/integrations/n8n
n8n is an open-source automation platform that lets you connect your Weavely form to hundreds of other apps and services. Trigger any n8n workflow automatically when someone submits a form.
Here's how to connect your Weavely form to n8n in just a few minutes using the Weavely community node.
Weavely connects to n8n through a verified community node. Before you can install it, you'll need to enable community nodes in your n8n instance. Navigate to your **Admin Panel** and make sure **Verified Community Nodes** are enabled.
You'll need a *"personal token"* to connect your Weavely account to n8n. To create one, navigate to *Settings->Personal Tokens* in the Weavely dashboard, give your token a name (e.g. "n8n"), and click create. Once generated, copy the token — you'll paste it into n8n in the next step.
Create a new workflow in n8n and search for **Weavely** under the available triggers. Install the Weavely community node, then add it to your workflow. When prompted to set up credentials, paste the personal token you copied from Weavely and hit **Save** — n8n will test the connection to confirm everything is working.
Once your credentials are saved, select the **team** you want to listen to and then choose the specific **form** you want to trigger the workflow. The form needs to be published in Weavely for it to appear in the dropdown. If you've just published a form, you may need to close and reopen the node settings for it to show up.
When you press **Execute Step**, n8n will start listening for new submissions. Submit a test response to your form and you'll see the output data in n8n — including the form ID, response ID, creation timestamp, and all your answers with their question labels, values, and question IDs.
And that's it! From here, you can connect the Weavely trigger to any other nodes in your n8n workflow — whether that's sending data to Google Sheets, Notion, a CRM, Slack, or any of n8n's hundreds of available integrations.
# Send Form Responses to Notion
Source: https://help.weavely.ai/integrations/notion
Weavely's Notion integration lets you connect your form to a Notion database and automatically send new responses as database entries.
## Step 1: Open the Integrations Tab
With the editor open, navigate to the *Integrations* tab and select the *Notion* integration as shown below.
## Step 2: Link Your Notion Account
Is this the first time you set up a Notion integration? Then Weavely will first guide you through the steps to connect your Notion account to Weavely. Just press *"Connect to Notion"* to get started.
## Step 3: Map Form Fields to Database Properties
Once you've connected your Notion account you'll be able to set up the integration for your form. In a first step you'll need to select which Notion database you want the responses to go to. In a second step you can specify how fields of your form correspond to columns of your Notion database. The gif below showcases both these steps.
If you can't see your Notion database you might not have given Weavely permissions to the right workspace or pages within your Notion. You can repeat the process in step 2 by disconnecting your Notion account in the Weavely dashboard under *Settings -> Connected Accounts*
## **Changing Your Notion Account or Resetting Your Connection**
If you ever need to reset your connection with Notion, for instance to switch to a different account or reauthorize access, you can do so from your Weavely dashboard. Go to **Settings → Connected Accounts** and click the red **“Disconnect”** button next to Notion. You can then reconnect with the correct account.
# Personal Tokens
Source: https://help.weavely.ai/integrations/personal-tokens
Need a personal token to connect Weavely to a third-party service (e.g. Zapier). Here's how to get yours today!
Personal tokens allow you to connect your Weavely forms to third-party services such as Zapier. To create a token, navigate to *Settings->Personal Tokens* in the dashboard.
# Send Form Responses to Salesforce
Source: https://help.weavely.ai/integrations/salesforce
Weavely's Salesforce integration lets you automatically create objects in Salesforce upon form submissions.
## Step 1: Open the Integrations Tab
With the editor open, navigate to the *Integrations* tab and select the *Salesforce* integration as shown below.
## Step 2: Link Your Salesforce Account
Is this the first time you set up a Salesforce integration? Then Weavely will first guide you through the steps to connect your Salesforce account to Weavely. Just press *"Connect to Salesforce"* to get started.
## Step 3: Map Form Fields to Object Properties
Once you've connected your Salesforce account you'll be able to set up the integration for your form. In a first step you'll need to select which Salesforce object you want to create upon form submission. In a second step you can specify how fields of your form correspond to properties of your Salesforce object. The gif below showcases both these steps.
## **Changing Your Salesforce Account or Resetting Your Connection**
If you ever need to reset your connection with Salesforce, for instance to switch to a different account or reauthorize access, you can do so from your Weavely dashboard. Go to **Settings → Connected Accounts** and click the red **“Disconnect”** button next to Salesforce. You can then reconnect with the correct account.
# Connect Your Weavely Form to viaSocket for Workflow Automation
Source: https://help.weavely.ai/integrations/viasocket
viaSocket is an AI automation platform that connects your Weavely form to hundreds of other apps like Slack, Gmail, Airtable, and more.
Here's how to connect Weavely and [viaSocket](https://viasocket.com/) in a few simple steps.
You'll need something called a *"personal token"* to connect you Weavely account to viaSocket. To create this token, navigate to *Settings->Personal Tokens* in the dashboard. Once created you'll be able to copy and paste this token (i.e. a string of text) to viaSocket in step 2.
When you create a new flow in viaSocket, search for "Weavely" to find Weavely's triggers. For the moment this is limited to "New form submissions". In other words, your flow will be activated everytime your Weavely form gathers a new submission.
When you open a Weavely trigger for the first time you'll first be prompted to connect your Weavely account. This is where your personal token from step 1 will come into play. Copy and paste the token into the field marked "API key" by viaSocket.
That's it! You're all set to start using your form submissions in your viaSocket flow. Further configure the trigger by selecting the right team and the right form to power your automation!
# Automate Workflows with Zapier
Source: https://help.weavely.ai/integrations/zapier
Connect Weavely to thousands of other tools through Zapier.
We're constantly adding native integrations to third-party tools. However, we can't integrate them all! If there's a tool you want to connect your Weavely form to, chances are it's already available on Zapier. Here's how to use Weavely in combination with Zapier.
You'll need something called a *"personal token"* to connect you Weavely account to Zapier. To create this token, navigate to *Settings->Personal Tokens* in the dashboard. Once created you'll be able to copy and paste this token (i.e. a string of text) to Zapier in step 3.
Open the form you want to include in your Zapier workflow in the Weavely dashboard. Navigate to the *Integrations* tab and hit the *"+ Add"* button next to Zapier. This will automatically create a Zapier trigger for you for that form. This trigger will fire everytime a new submission is received for that form.
Alternatively, you can also start this step from within Zapier. Just search for Weavely when creating the trigger and you'll be able to select which form you want to include in your Zapier automation through a dropdown.
In the Zapier trigger you'll need to authenticate Weavely. You do this inside the trigger, using your personal token you created in Step 1. The gif below walks you through the steps required to authenticate.
If you've followed the steps above your Weavely trigger will come pre-configured with the right form id and team id. If you've started the setup from Zapier you'll be able to select the right team and form through a dropdown.
In all subsequent steps of your Zap you will be able to use parts of the submissions received by your Weavely form as *field mappings*. The image below shows the example of reusing answers given by respondents to our form to use in a Slack message.
# Send Form Responses to Zoho
Source: https://help.weavely.ai/integrations/zoho
Weavely's Zoho integration lets you automatically create contacts in Zoho upon form submissions.
With the editor open, navigate to the *Integrations* tab and select the *Zoho* integration as shown below.
Is this the first time you set up a Zoho integration? Then Weavely will first guide you through the steps to connect your Zoho account to Weavely. Just press *"Connect to Zoho"* to get started.
Once you've connected your Zoho account you'll be able to set up the integration for your form. You can specify which fields of your form should be used to create the new contact in Zoho as shown in the gif below. At the time of writing you can only create new contacts after a form submission. Looking to do something else? Reach out to [florian@weavely.ai](mailto:florian@weavely.ai) to tell us your use case and we'll add it to the roadmap!
To create a contact in Zoho you need to at least map a last name.
## **Changing Your Zoho Account or Resetting Your Connection**
If you ever need to reset your connection with Zoho, for instance to switch to a different account or reauthorize access, you can do so from your Weavely dashboard. Go to **Settings → Connected Accounts** and click the red **“Disconnect”** button next to Zoho. You can then reconnect with the correct account.
# Supported Browsers
Source: https://help.weavely.ai/supported-browsers
Weavely works best on modern browsers. Here's what we officially support.
Weavely is built on modern web technologies. For the best experience, we recommend keeping your browser up to date.
## Supported Browsers
Version 111 and above
Version 111 and above
Version 111 and above
Version 16.4 and above
Older browser versions may work, but we can't guarantee full compatibility or a smooth experience. If something looks off, updating your browser usually fixes it.