Syncing External Webforms (WordPress, WPForms, Fluent Forms) with Qomon via Stripe
If you are using external forms on your website (such as WPForms, Fluent Forms, or other WordPress plugins) to collect memberships or donations directly through your connected Stripe account, you may notice that these transactions do not automatically appear in Qomon.
This happens because Qomon needs a specific identifier to know what type of contact, membership, or donation is being processed.
Why are my external payments missing in Qomon?
When a contact pays through a native Qomon page, Qomon handles everything behind the scenes. However, when a payment is created directly on your website via an external plugin, it generates a direct Payment Intent in Stripe without a Stripe subscription or invoice.
For Qomon to automatically ingest these direct payments, our sync engine looks at the Metadata attached to the Stripe transaction.
The Rule: Qomon requires a key called qomon_price_id (or price_id) inside the Stripe payment metadata. If this key is missing, Qomon does not know how to categorize the transaction (ex. whether it’s an annual membership or a one-off donation) and will ignore the payment.
What to do:
To fix this permanently, you must configure your WordPress form plugin to inject the qomon_price_id into Stripe at the exact moment the payment is created.
Your form is likely already sending default metadata to Stripe, which looks like this:
JSON
{ "form_id": "5", "form_title": "Annual Membership", "submission_id": "894", "wp_plugin": "Fluent Forms Pro" }
To make it work with Qomon, you need to add an extra custom metadata key-value pair into that exact same block in your form settings:
Key:
qomon_price_idValue:
[Your Specific Qomon Price ID]
Your final metadata block should look like this:
JSON
{ "qomon_price_id": "your_membership_price_id_here", "form_id": "5", "form_title": "Annual Membership", "submission_id": "894", "wp_plugin": "Fluent Forms Pro" }
Common pitfalls to avoid
❌ Don't add metadata to Stripe Products: Adding metadata to a "Product" inside your Stripe dashboard does not carry through to individual Payment Intents. It will not trigger a sync.
❌ Don't rely on manual tagging: Manually updating the metadata on a payment after it has already processed will not automatically push it to Qomon, as the sync engine primarily listens for initial payment creation events.
How to set it up (step-by-step)
Step 1: Retrieve your Qomon Price ID:
Log into your Qomon space or reach out to your Qomon CSM to get the exact qomon_price_id string for the corresponding membership or donation tier you want to track (ex, membership_simple, open_donation, or a Stripe-specific API price string).
Step 2: Configure your WordPress Form Plugin:
Go to your WordPress backend, open your form settings (WPForms, Fluent Forms, etc.), and navigate to the Stripe Integration / Payment settings tab. It may not be WordPress necessarily. It may be a custom web server directly calling Stripe or a lot of other things
Step 3: Map the Custom Metadata:
Find the Metadata section within the Stripe settings of your form. Add a new custom field. Set the meta key to qomon_price_id and paste your specific Qomon Price ID into the value field. Save your form changes.
Step 4: Fix past missing payments (Optional):
If you have historical transactions that didn't sync, log into your Stripe Dashboard, open those specific payments, and manually add the Metadata key qomon_price_id with its correct value.
Note on Donations: If you are processing standard monthly recurring donations or native Stripe donation links directly via Stripe subscriptions, these usually match automatically via their internal Stripe Price IDs and do not require manual webform metadata mapping.
Need a historical refresh?
Once you have successfully added the metadata to past payments inside your Stripe dashboard, they will not sync automatically right away.
Please reach out to Qomon Support with a quick message: "We've updated the metadata on our missing webform payments, please trigger a historical Stripe sync for us", and our team will run a manual sync loop to pull those contacts and transactions right into your database!
