Skip to content
Paid add-on

When the form has to charge, compute, publish or be followed up.

SolisForms Pro installs alongside the free plugin and extends it. Deactivate it whenever you like: your forms and submissions do not move.

  • Payments

    Stripe, PayPal, Mollie, Razorpay and Square. Coupons, tax, subscriptions and refunds. Amounts are recomputed server-side before any charge.

  • Advanced fields

    Calculated fields and repeatable groups, for quotes, orders and registrations where the number of lines is not known in advance.

  • Unlimited notifications

    As many as you need, conditional, with attachments, Cc, Bcc and Reply-to.

  • Signature and PDF receipt

    Have a waiver, a consent or a quote signed — drawn, or typed as a full name. Each signed submission produces a frozen PDF carrying the consent statement accepted, the date in universal time and a SHA-256 fingerprint. It is not a qualified electronic signature.

  • Document checklists

    Ask for several documents, track what is still missing, and accept or reject each one on its own. A refused document can be sent again without redoing the form.

  • Appointment slots

    Publish your availability and let visitors book. A seat is taken by an insert, never by a count: two people clicking at the same second cannot take the same one.

  • Email verification

    Confirm an address before the submission counts. The entry is never lost in the meantime — it waits, and the effects it would trigger wait with it.

  • Uniqueness and duplicates

    Refuse or flag an answer already received, on a key you pick. Values are compared exactly — an approximate match would refuse people who never answered — and two simultaneous submissions are settled by a unique index, not by a check placed beside the write.

  • WordPress accounts

    Turn a submission into a member account, or update the signed-in one. Roles are restricted by a whitelist: a form can never create an administrator.

  • Submission portals

    Publish a searchable, filterable, paginated list, with approval before anything appears. Approving is not a submission status: the same entry can appear in one directory and stay hidden in another.

  • Internal processing

    A state, an assignee, a deadline and an append-only history on every submission. Being assigned a file never grants the right to read it — the right comes first.

  • Privacy centre

    Retention per form, search by address, export and erasure, with an append-only trail. The address is matched exactly — a partial match would export somebody else’s data — and the trail has no update method at all, because one you can correct proves nothing.

  • Admin assistant

    Have a form drafted from a description, and get your conditions checked. It proposes and never applies — there is no route that writes — and no submission value ever leaves the site: the consistency check needs no provider at all.

  • Surveys, quizzes and reports

    Score answers, set a pass mark, and read the results on their own screen. The report holds answer keys, never labels or free text.

  • Conversational forms

    One question per screen, on a dedicated page. Built from the core’s own pagination, so navigation, progress and focus stay the ones that are already tested.

  • Offline forms

    Fill a form with no network and send it when it comes back. Each entry carries an identifier that makes a double send impossible, and what waits on the device is encrypted.

  • Dynamic prefill

    A field can arrive filled from the signed-in account, a named URL parameter, a fixed value or your own PHP filter. Account sources only ever read the visitor’s own account.

  • Abandonment recovery

    Offer to email a link to finish later — only if the visitor says yes, explicitly. One reminder per draft, and nothing is kept without that agreement.

  • Friction analytics

    See which field people stop at, and which one they correct three times. Counters only: no session, no identifier, nothing that designates anyone.

  • Availability and access

    Open and close a form on a date, cap the number of entries, restrict it to certain roles or to logged-in users.

  • CSV export and statistics

    Export submissions to CSV, and read ninety days of statistics instead of seven.

  • Cloud storage

    Copy the attachments you tick to Google Drive, OneDrive or Dropbox, filed by a folder template. Nothing is copied until a field is ticked, and no public share is ever created.

  • Google Sheets

    One row per submission, appended to the tab you choose. Column order is the mapping, so a deleted field leaves its column empty rather than shifting rows already written — and a submitted formula stays text.

  • HubSpot

    A contact created or updated per submission, mapped against your own portal’s properties. Adding it to a static list is separate, and only happens when the visitor ticks a Consent field — which records the exact wording accepted, and is frozen at submission time.

  • Pipedrive

    A person created or updated per submission, then a lead opened for it. The person is looked up by email first — without that, every answer would add one more to your database — and a delivery that stops halfway resumes where it left off.

  • ActiveCampaign

    A contact created or updated per submission. Subscribing to a list and applying tags are separate and both wait for consent: on this platform a tag commonly starts an automation, so it counts as marketing just like a subscription.

  • Mailchimp

    A subscription per consenting answer, with double opt-in by default. Nothing is sent without consent — not even the contact — because Mailchimp is the mailing list itself, and an existing member always keeps the status they chose.

  • Airtable

    One record per submission, in the base and table you pick. Columns are addressed by their internal id, so renaming one in Airtable changes nothing here — and a merge key turns a second answer into an update instead of a duplicate.

  • Notion

    One page per submission, in a database you share with the connection. A value matching no existing select option is left out rather than added to your schema: a public form must not be able to enrich your lists.

  • Google Calendar and Outlook

    A confirmed booking becomes an event; cancelling it removes the event. The exact instant is sent, never a local time, so a slot booked in January for a summer date happens at the announced hour. Nobody is invited unless you ask.

  • Microsoft Teams

    A card in a channel when an answer arrives, a case is assigned or a due date passes — each switched on separately. Teams renders Markdown in cards, so values coming from an answer are defused: nobody drops a link into your channel through your form.

  • Accounting: Xero and QuickBooks

    A customer and an invoice written after a payment goes through — a draft by default. Lines, discount and tax come from the order as it was charged, never recomputed, and if they do not add up to the amount taken, nothing is written at all.

  • SMS and WhatsApp

    Transactional messages through Twilio: a confirmation, a booked slot, a resume link. The opt-out list holds fingerprints, not numbers, and a STOP outranks any consent ticked afterwards.

  • Salesforce

    A Lead or a Contact per submission, mapped against your own org schema. With an External ID field the delivery is idempotent, so a retry updates the record instead of adding another.

  • Zoho CRM

    Every submission becomes a lead, mapped field by field to your own CRM fields. One submission can never produce two leads, and the refresh token is encrypted at rest.

  • Zapier trigger

    Pick a form from a dropdown in Zapier and every submission travels to your Zaps. The sample Zapier keeps in a Zap’s configuration is synthetic: no real answer leaves to be stored there.

  • Integrations

    A signed webhook, Slack and Brevo, plus a named module for Zapier, Zoho CRM, Salesforce, HubSpot, Pipedrive, ActiveCampaign, Mailchimp, Airtable, Notion, Twilio, Google Sheets, three cloud storages, two calendars, Microsoft Teams and two accounting systems. Make and n8n need no module: they read the signed webhook as it comes.

Automation

Your forms no longer stop at “Send”.

Every submission can trigger the notification that matches it, travel to your own tool, and alert your team — without any intermediary service seeing your data go past.

The webhook is signed: the recipient can verify that the request really comes from your site, and not from someone who knows its address.

What happens next

From the submission to the action.

Each step is conditional, and the server decides — never the browser.

  1. Trigger — Submission accepted
  2. Condition — Does the rule match?
  3. Notification — The right email, to the right person
  4. Webhook — Sent signed, to your address
  5. Slack · Brevo — Channel notified, contact added

Every step covered by automated tests

Integrations

What it plugs into

Five payment gateways and more than twenty outbound destinations. Each is configured per form, and is contacted only once its keys are entered.

  • Stripe

    Payment

    Cards and wallets, in the page. Subscriptions, refunds, coupons and tax.

  • PayPal

    Payment

    In-page buttons, subscriptions and refunds, on the same order as the others.

  • Mollie

    Payment

    A hosted payment page: iDEAL, Bancontact and the European methods Mollie carries.

  • Razorpay

    Payment

    A hosted payment link for the Indian market, with its own webhook signature.

  • Square

    Payment

    A hosted checkout link, amounts in minor units, zero-decimal currencies included.

  • Signed webhook

    Developer

    Every submission sent to an address of your choosing, with an HMAC signature the recipient can verify.

  • Slack

    Notification

    A message in the channel of your choice as soon as a submission arrives.

  • Google Drive

    Storage

    Attachments copied into your own Drive, in folders the plugin creates. The scope requested covers only the files it creates itself.

  • OneDrive

    Storage

    The same copies into your OneDrive, with the folder path creating the structure as it goes. Four megabytes per file in this version.

  • Dropbox

    Storage

    The most tolerant of the three on size. No shared link is ever created: getting one would open the file to whoever knows the address.

  • Twilio

    Messaging

    Transactional SMS and WhatsApp: a confirmation, a booked slot, a resume link. Never a campaign — every trigger answers a gesture.

  • Salesforce

    CRM

    A Lead or a Contact per submission, mapped against your org’s real schema. An External ID field makes a retry update the record rather than duplicate it.

  • HubSpot

    CRM

    A contact per submission, mapped against your portal’s own properties. The static list is separate: it only receives people who ticked a Consent field, and that decision is frozen at submission time.

  • Pipedrive

    CRM

    A person looked up by email, then created or updated, and a lead opened for it. A delivery is four calls, and one that stops halfway resumes rather than duplicating what it already wrote.

  • Zoho CRM

    CRM

    One lead per submission, mapped to your own CRM fields. The data centre is picked when connecting, and nothing is sent that the mapping does not name.

  • Make

    Automation

    No module, and none needed: a Make custom webhook accepts the signed JSON the Webhook panel already sends. Paste the address Make gives you and it is done — the documentation covers the body, the signature and a worked example.

  • n8n

    Automation

    Same as Make: the Webhook node takes the signed JSON as it comes. Verifying the signature takes one Code node, and the documentation gives it in full — along with the Raw Body setting without which it can never match.

  • Zapier

    Automation

    A “New submission” trigger on Zapier’s marketplace. The example it shows while you build a Zap is synthetic, not someone’s answer.

  • Google Sheets

    Spreadsheet

    One row per submission, appended to the tab you choose. Column order is the mapping, and a submitted formula is written as text, never run.

  • ActiveCampaign

    Email

    A contact created or updated by email, with your own custom fields. A tag starts an automation here, so tags and lists both wait for an explicit consent frozen at submission time.

  • Mailchimp

    Email

    A subscription per consenting answer, with double opt-in by default. Nothing is sent without consent, and an existing member keeps the status they chose — a resend can never bring back someone who unsubscribed.

  • Airtable

    Productivity

    A row per answer, in the base and table you pick. Columns are addressed by their internal id, so renaming one breaks nothing — and a merge key makes a second answer update the row instead of creating another.

  • Notion

    Productivity

    A page per answer, in the database you share with the connection. A value matching no existing select option is left out rather than added to your schema — and a key property turns a second answer into an update instead of a duplicate.

  • Google Calendar

    Appointments

    A confirmed booking becomes an event; cancelling it removes the event. The exact instant is sent, so a slot booked in January for a summer date happens at the announced time.

  • Outlook

    Appointments

    The same contract as Google Calendar, on a Microsoft account. Nobody is invited unless you ask: adding the visitor as an attendee would have the provider email them from your account.

  • Microsoft Teams

    Notification

    A card in a channel when an answer arrives, a case is assigned, or a due date passes — each one switched on separately. Teams renders Markdown in cards, so values from an answer are defused: nobody drops a link into your channel through your form.

  • Xero

    Accounting

    A successful payment writes a customer and a draft invoice — a draft in Xero creates no accounting entry until someone approves it. Lines, discount and tax come from the order as it was charged, and if they do not add up to the amount taken, nothing is written.

  • QuickBooks Online

    Accounting

    The same contract as Xero, with one difference its API imposes: QuickBooks has no draft invoice, so a form pointed at it writes nothing until you accept that every payment posts to your books. The screens say so rather than letting you find out through missing invoices.

  • Brevo

    Email

    The contact added to a list, with the fields you map to it.

Every name above is a module the code actually carries. For anything else — Make, n8n, your own application — the signed webhook is the answer, and it is not a lesser one: it is what those platforms read anyway.

The integrations page
What does not change

The free version loses nothing

  • Your forms stay

    Deactivating Pro erases no form, no submission and no setting. The Pro features stop; everything else carries on.

  • An expired licence turns nothing off

    It stops updates to the Pro add-on. The installed plugin keeps working exactly as it is.

  • Fourteen days refunded

    No questions asked. Payment and licences are handled by Freemius.

Before you buy

The questions that come up

Is the free version a trial?

No. It is a complete, smaller product. It has no time limit, no form count limit and no submission count limit, and the features it ships will stay free.

What happens if I stop paying for Pro?

The free plugin keeps working, with every form and every submission intact. An expired licence stops updates to the Pro add-on — nothing else.

Is Pro a separate plugin?

Yes. SolisForms Pro installs alongside the free plugin and extends it. You can deactivate it at any time without touching your forms.

Can I extend it myself?

Yes. The plugin exposes documented hooks and an add-on registration point, both in PHP and in the JavaScript builder. The extension points page lists them.

All the questions

Start with the free version

Install the plugin, build your form, and only buy Pro if you hit its limit.

  • Free and open source
  • No account required
  • No runtime dependency