Contact form for visitors
Let visitors reach you from your public portfolio.
Quick start
- Sign in, open
My Portfolios, and click Edit on a portfolio to open/portfolios/edit/[pid]. - In the sticky jump nav, click Sections to land on Contact Form (
section-contact). Click Edit, turn Enabled on, set an optional Section Title / Intro Message, then click Update. - Publish so the live page includes the form (first go-live or Publish draft).
- Open View public page (or
/p/[slug]) in a private window. Fill the form as a visitor and send a test message. - Open
Conversations— you should see the new thread. Check email if you use notifications alongside the inbox.
Editor field checklist (services, embeds, and contact toggles): Contact, embeds, and content blocks. Live URL basics: Public portfolio page.
Deep dive
Where these controls live
On /portfolios/edit/[pid], Contact Form sits under Page sections (section-contact). Jump nav Sections lands here. Use ? on the Contact Form header for a short reminder and a Learn more link back to this article.
Owner setup is in the editor. Visitors use the form on the published public page only — Help does not place ? tooltips on /p/[slug].
Owner setup
Open Contact Form, click Edit, then configure:
| Control | What it does |
|---|---|
| Enabled | Turns the public contact section on or off |
| Section Title | Optional headline above the form (for example “Get in Touch”) |
| Intro Message | Optional short message encouraging people to reach out |
| Highlight Badges | Optional chips (Hiring, Freelance, Open to Work, and similar) |
| Show Phone Number / Show Email Address / Show Address / Show Social Links | Display contact details from Profile / Connect when privacy allows |
| Show Google Map | Pro map on the form — see below |
| Allow messages from non-members | Lets guests submit without a Portura account |
Save with Update. When guest messaging is on, the editor card can show a short Recent guest messages preview.
Editor-only details (services, testimonials, embeds) stay in Contact, embeds, and content blocks. Contact field visibility on the public page also follows Privacy — Privacy and visibility.
Allow messages and spam reduction
Turn Allow messages from non-members on so visitors who are not signed in can submit.
Built-in anti-abuse is always on for those guest messages. You do not pick a CAPTCHA, and save does not require one.
- Email verification (optional) — visitors confirm their email with a one-time code before the message is sent. Leave it off if you want guests to send without that extra step.
There is no Google CAPTCHA setting. The same form works on Portura hosts (*.portura.ai) and custom domains. This reduces automated spam; it does not replace reviewing messages in Conversations.
Show Google Map (Pro)
Show Google Map is Pro (contact-form-google-map). The toggle stays disabled until:
- Profile has a full street address, and
- Location visibility is on in Privacy settings.
Free accounts see the upgrade gate instead of using the map. Privacy steps: Privacy and visibility and Privacy, SEO, and analytics.
Visitor submit path
After you enable the form and publish:
- Visitors open your public URL (
/p/[slug]or custom domain). The form works the same on both. - They find the contact section on the themed page and fill the fields. They will not complete a Google CAPTCHA. If you turned Email verification on, they enter a one-time email code.
- A successful submit creates an inbound thread for you.
Owners checking the live form should use a private window (or sign out) so guest messaging and spam checks behave like a real visitor. Preview can show draft layout; the public page shows only published content — Preview and public page.
Email vs Conversations inbox
Submissions land in your in-app inbox at Conversations. Portura may also send an email notification as a heads-up.
| Channel | Role |
|---|---|
| Conversations | Read threads and reply in one continuous conversation |
| Email notification | Alert that a message arrived — not the full reply workspace |
Prefer Conversations for replies. Full inbox steps: Conversations.
Contact form vs visitor Mira
The Contact Form creates message threads you handle in Conversations. Visitor Mira is a separate public-page AI chat for guests asking about your portfolio — not a replacement for this form or the inbox. Visitor Mira Help ships separately in this category.
Tips
- Turn Enabled on and publish before you expect visitors (or a test submit) to reach you.
- When Allow messages from non-members is on, built-in spam checks always apply. Email verification is optional extra proof — there is no Google CAPTCHA.
- Confirm Privacy Location / phone / email toggles if display fields or the map stay empty on the public page.
- Use Conversations for threaded replies; treat email as a notification only.
- On the Contact Form card in the editor, use ? for this guide — not on the visitor public page.
After a test submit, refresh Conversations. If the inbox is still empty, confirm Enabled, publish status, and that you submitted as a guest (or with guest messaging allowed).
Troubleshooting
Contact form does not appear on the public page
- Confirm Enabled is on and you clicked Update.
- Publish (or Publish draft), then open View public page — not only Preview.
- Confirm the portfolio is publicly accessible if you are checking as an anonymous visitor — Privacy and visibility.
I cannot save after enabling guest messages
- Guest messaging no longer requires Email verification. Built-in spam checks always apply, and there is no Google CAPTCHA setting.
- Retry Update.
Google Map toggle is disabled
- Add a full street address under Profile.
- Turn on Location in Privacy and Save.
- Confirm your plan includes Show Google Map (
contact-form-google-map).
Test message never shows in Conversations
- Confirm Allow messages from non-members is on if you submitted while signed out.
- If you turned Email verification on, complete the one-time email code, then refresh Conversations.
- Check email for a notification — if mail arrived but the inbox looks empty, refresh or sign out and back in, then reopen
/conversations. Inbox how-to: Conversations.