One-prompt setup
Building with an AI tool? Copy this prompt, swap in your access key and paste it in. It tells the model everything it needs.
Before you paste
Section titled “Before you paste”- Create a form at app.formwire.com and copy its access key from the form’s Settings tab, under General.
- Replace
YOUR-ACCESS-KEYin the prompt below. The key is public, so it’s fine to have it in your project.
The prompt
Section titled “The prompt”Add a contact form to this site and connect it to Formwire.
Requirements:- Fields: name, email (required) and message (required).- The <form> posts to https://formwire.io/submit with method="POST".- Include a hidden input named "access_key" with the value YOUR-ACCESS-KEY.- Include a hidden input named "redirect" with the URL of a thank-you page on this site, and create that page if it doesn't exist.- Include a honeypot: a text input named "fax", positioned off-screen with tabindex="-1", autocomplete="off" and aria-hidden="true". Leave it empty.- Do not add any JavaScript unless the site already handles forms with fetch; if it does, send the same fields as JSON with an "Accept: application/json" header and show the response's "message" to the user.- Keep the field names exactly as written; Formwire reads "name" and "email" as the sender.
Integration reference: https://formwire.com/llms.txtIt works as written in Lovable, v0, Bolt, Replit and Cursor, and in Claude Code or Codex. The last line points the model at formwire.com/llms.txt, a plain-text version of these docs written for agents, so it can look up field names and the response shape on its own.
If the site submits with fetch
Section titled “If the site submits with fetch”React and Vue projects often intercept form submits. The main prompt already allows for that; if the model still writes a plain form where you wanted a fetch call, follow up with:
The site handles forms with fetch. Submit the contact form to https://formwire.io/submitas JSON with the headers Content-Type: application/json and Accept: application/json, includingaccess_key: "YOUR-ACCESS-KEY" in the body. On a response with success: true, show a thank-youmessage; otherwise show the response's "message" field. Keep the "fax" honeypot input in themarkup and send its value too.Check the result
Section titled “Check the result”- The form’s
actionishttps://formwire.io/submitand its method is POST. - There’s a hidden
access_keyinput with your key. - The
faxinput is present, empty and off-screen. Without it, bot submissions aren’t caught. - Submit once from the running site. The submission shows on the form’s Submissions tab and the email arrives.
Going further
Section titled “Going further”Once the form works, the submit endpoint reference lists the option fields the model can add: subject for the email’s subject line, replyto to route replies, file inputs for attachments. For an agent that should also read submissions or create forms itself, connect the MCP server.