Getting Started with Aeion Forms
Create your first form, launch a survey campaign, analyze results with AI sentiment analysis, track NPS trends, and sync responses to CRM — all inside Aeion OS.
Create Your First Form
| Field Type | Use Case | Special Behavior |
|---|---|---|
| Text | Name, company | Validation: min/max length, regex |
| Contact email | Auto-validate format | |
| Phone | Mobile number | International format support |
| Number | Age, quantity | Min/max, decimal support |
| Rating | Satisfaction | Stars, emoji, or numbers (1-5, 1-10) |
| NPS | Net Promoter Score | 0-10 scale, auto-computes -100 to +100 |
| CSAT | Customer Satisfaction | 1-5 scale |
| CES | Customer Effort Score | 1-7 scale |
| Ranking | Preference order | Drag to reorder items |
| Matrix | Grid of options | Radio or checkbox per row |
| Slider | Range selection | Min/max/step configuration |
| Date / Time | Appointment | Calendar/time picker |
| File Upload | Resume, document | Streams to S3/R2/GCS |
| Signature | E-signature | Canvas-based pad |
| Payment | Checkout | Stripe/Billing integration |
| Yes/No | Binary | Toggle or radio |
| Multiple Choice | Single answer | Radio buttons |
| Dropdown | Long lists | Searchable select |
| Likert Scale | Agreement | Strongly disagree → strongly agree |
| Address | Physical address | Google Places autocomplete |
| Paragraph | Long text | Rich text support |
Configure Form Settings
Navigate: Form → Settings
Form behavior:
- Require login — Only authenticated users can submit
- One submission per user — Prevents duplicate submissions
- Save partial progress — Enables mid-completion saves with resume link
- Close date — Form auto-closes on a specific date
- Notifications — Email admin when submission is received
Branding:
- Custom success message (shown after submit)
- Redirect URL (redirect to a page after submit)
- Custom CSS (advanced styling)
Integrations:
- CRM sync — Map form fields to CRM contact fields
- Webhook — POST submission data to an external URL
- Blueprint — Trigger a workflow on submission
Spam protection:
- Honeypot field (hidden field that bots fill, humans don't)
- CAPTCHA integration (reCAPTCHA v2/v3, hCaptcha, or Turnstile)
- Rate limiting per IP
Publish and Share Your Form
Navigate: Form → Publish
Share options:
- Direct link —
https://yourtenant.aeionos.com/forms/{formSlug} - Embed code — Iframe embed for your website
- Popup widget — Floating button that opens the form modal
- QR code — Print-ready QR for physical events
- Email campaign — Send via Marketing module
Form views tracked: Every form open is recorded separately from submissions, so you always know your true completion rate — submissions ÷ views.
Embed code:
html
<iframe
src="https://yourtenant.aeionos.com/forms/contact-us"
width="100%"
height="600"
style="border: none; border-radius: 12px;"
></iframe>
Headless React hooks (@aeion/forms-react):
```tsx import { useAeionForm } from "@aeion/forms-react";
function MyCustomForm({ formId }) { const { fields, submit, isSubmitting, error } = useAeionForm(formId); // Render your own UI while using Aeion's validation and submission logic } ```
Analyze Submissions with AI Sentiment
Navigate: Forms → [Form] → Analytics → AI Analysis
Every text response is scored automatically, the moment it's submitted:
Sentiment scores per response:
json
{
"submissionId": "sub_01J8XK4N3P",
"text": "The product quality is excellent but delivery took too long",
"sentiment": "positive",
"confidence": 0.72
}
How it works:
- Each response is sent to your tenant's configured AI provider with a classification prompt
- The provider returns a sentiment label (positive / neutral / negative) plus a confidence score for every response
- Results are aggregated into the overall sentiment breakdown shown on the Analytics tab
- If no AI provider is configured (or the call fails), responses fall back to a neutral default rather than a guessed classification — you'll see a note on the analysis indicating AI wasn't available
Theme extraction:
json
{
"name": "delivery_speed",
"description": "Customer mentions of shipping and delivery times",
"frequency": 47,
"exampleResponses": [
"Delivery was fast and well-packaged",
"Took a week to arrive, expected it sooner",
"Arrived on time with no issues"
]
}
Word frequency: Top 100 words across all responses, excluding filler words. Useful for finding unexpected themes.
Track NPS, CSAT, CES
Navigate: Forms → [Form] → Analytics → Scores
NPS computation:
``` Promoters (9-10): 45 Passives (7-8): 30 Detractors(0-6): 25 Total: 100
NPS = (45/100) 100 - (25/100) 100 = +20 ```
Industry benchmarks: +30 is good, +50 is excellent, below 0 needs urgent attention.
Every form's analytics overview includes: total responses, completion rate (submissions ÷ views), average completion time, NPS (-100 to +100), CSAT average (1-5), and CES average (1-7) — recalculated the moment new responses come in.
NPS trend over time: weekly trend points show promoters, passives, detractors, and total responses for each period.
Weekly trend shows trajectory — is NPS improving or declining?
Cross-tabulation: "How does NPS break down by industry?"
Row: industry (tech, healthcare, retail, finance)
Column: nps_category (promoter, passive, detractor)
→ Count matrix per combination
Launch a Survey Campaign
Navigate: Marketing → Survey Campaigns → New Campaign
Why survey campaigns? Send the same survey to many recipients, track response rates, and analyze results per campaign.
Create a survey campaign:
- Select form — Choose the survey form to send
- Define audience — CRM contacts, manual list, or segment
- Schedule — Send now, or schedule for a specific date/time
- Set reminders — Remind non-respondents after N days
Campaign stats tracked:
typescript
{
campaignId: "camp_01J8XK4N3P",
total: 5000,
sent: 4980,
delivered: 4950,
opened: 3200,
clicked: 2100,
responded: 840,
bounced: 30,
failed: 20,
responseRate: 16.9 // (840 / 4980) * 100
}
Token-based response linking: Each recipient gets a unique, secure tracking token. When they respond, the submission is linked back to the campaign send record automatically.
A/B test subject lines:
Variant A: "Quick question — rate your experience"
Variant B: "Help us improve: 2-minute survey"
Track opens and clicks per variant, then analyze response rate.
Connect to CRM via Events
Navigate: Forms → [Form] → Integrations → CRM
Forms communicate with other modules natively — no HTTP, no Zapier:
Setup:
- Select form fields to map to CRM contact fields
- Save integration config
- Every submission is picked up automatically by connected modules
What happens automatically:
Form submitted
→ CRM module: creates/updates contact with form data
→ Helpdesk module: creates support ticket
→ Marketing module: adds to follow-up campaign
→ Billing module: processes payment if payment field present
Other automatic behaviors:
- Spam-flagged submissions route to an admin review queue
- Payment initiation and confirmation sync with Billing checkout
- Notifications module sends any triggered emails
- Analytics tracks template usage
No middleware, no polling, no Zapier. Delivery is guaranteed.
Use a Survey Template
| Template | Fields | Use Case |
|---|---|---|
| NPS Survey | NPS (0-10), open text | "How likely are you to recommend us?" |
| CSAT Survey | CSAT (1-5), rating, open text | "How satisfied were you with our service?" |
| CES Survey | CES (1-7), open text | "How easy was it to get your issue resolved?" |
| Employee Engagement | Likert scale (6 questions), open text | Annual engagement survey |
| Event Feedback | Rating, yes/no, open text | Post-event collection |
| Product Feedback | Rating, multiple choice, open text | "What did you think of the new feature?" |
| Training Evaluation | Rating, Likert, open text | Post-training course evaluation |
| Support Quality | Rating, CSAT, open text | Support interaction quality |
Partial Submission Resume
For long surveys, enable Save Partial Progress in form settings:
How it works:
- User starts filling out the form
- Clicks Save for later (shown below the form)
- Progress is saved automatically
- User enters their email address
- Resume link emailed:
https://yourtenant.aeionos.com/forms/resume/{token} - Token is unique and secure, and expires after 24 hours
- On resume: form pre-populated with saved answers
Notifications:
- The submitter is emailed automatically when a resume link is requested
- The Notifications module handles delivery
Partial submissions auto-expire after 24 hours and are cleaned up automatically.