Your forms already talk to your tools.
Five payment gateways and more than twenty outbound destinations, brought by the paid add-on. None is contacted until its keys are entered, and no intermediary service ever sees your data go past.
Every name here is a module the code carries
Each is set per form. The keys live in your own site’s settings, never anywhere else.
Stripe
PaymentCards and wallets, in the page. Subscriptions, refunds, coupons and tax.
PayPal
PaymentIn-page buttons, subscriptions and refunds, on the same order as the others.
Mollie
PaymentA hosted payment page: iDEAL, Bancontact and the European methods Mollie carries.
Razorpay
PaymentA hosted payment link for the Indian market, with its own webhook signature.
Square
PaymentA hosted checkout link, amounts in minor units, zero-decimal currencies included.
Signed webhook
DeveloperEvery submission sent to an address of your choosing, with an HMAC signature the recipient can verify.
Slack
NotificationA message in the channel of your choice as soon as a submission arrives.
Google Drive
StorageAttachments copied into your own Drive, in folders the plugin creates. The scope requested covers only the files it creates itself.
OneDrive
StorageThe same copies into your OneDrive, with the folder path creating the structure as it goes. Four megabytes per file in this version.
Dropbox
StorageThe 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
MessagingTransactional SMS and WhatsApp: a confirmation, a booked slot, a resume link. Never a campaign — every trigger answers a gesture.
Salesforce
CRMA 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
CRMA 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
CRMA 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
CRMOne 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
AutomationNo 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
AutomationSame 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
AutomationA “New submission” trigger on Zapier’s marketplace. The example it shows while you build a Zap is synthetic, not someone’s answer.
Google Sheets
SpreadsheetOne 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
EmailA 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
EmailA 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
ProductivityA 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
ProductivityA 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
AppointmentsA 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
AppointmentsThe 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
NotificationA 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
AccountingA 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
AccountingThe 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
EmailThe contact added to a list, with the fields you map to it.
No integration matches. Try another word, or go back to All.
The webhook, when your tool is not on the list.
Every accepted submission travels to an address of your choosing, as JSON or form-encoded. The request carries an HMAC-SHA256 signature the recipient can verify: without it, anyone who knew the address could send it fake submissions.
- The timestamp is signed with the body, which prevents replay
- Retry on failure, and a delivery log on every submission
- Fifty-one documented extension points, in PHP and in the builder
- REST API under
solis-forms/v1
POST your-endpoint · X-SolisForms-Signature: t=…,v1=…
{
"entry_id": 128,
"form_id": 42,
"form_title": "Quote request",
"created_at": "2026-09-24 09:31:07",
"fields": [
{ "id": "email", "label": "Email address", "value": "…" },
{ "id": "budget", "label": "Budget", "value": "5000" }
]
}Verifiable signature: hash_hmac('sha256', t + '.' + body, secret)
Start with the free version
The integrations come with SolisForms Pro. The free plugin sends nothing anywhere — and that is already what most forms want.
- Free and open source
- No account required
- No runtime dependency

