This guide explains how to configure the zkVM Spreadsheet signup form with Loops.so.
The form is pre-configured and ready to use! The Loops.so form ID is already hard-coded in the application (cmeda826609gk0c0ijtguaff9), so the integration should work out of the box.
- A Loops.so account (sign up at https://loops.so if you don't have one)
- Access to your Loops.so dashboard
The form collects the following data:
firstName- Contact's first namelastName- Contact's last nameemail- Contact's email address (required)companyName- Contact's company name (custom property)
To add the companyName custom property in Loops.so:
- Go to your Loops.so dashboard
- Navigate to Settings → API
- Add a new custom contact property:
- Name:
Company Name - API Name:
companyName - Type: Text
- Name:
If you need to use a different Loops.so form endpoint:
-
Get your Form ID from Loops.so:
- Log in to https://app.loops.so
- Navigate to Forms → Settings
- Copy the Form ID from the Form Endpoint URL
-
Create a
.envfile in the root of your project -
Add your custom form ID:
REACT_APP_LOOPS_FORM_ID=your_custom_form_id_here- Restart your development server
- Start your development server:
npm startoryarn start - Navigate to the homepage
- Click on "Get the Spreadsheet" button in the Current Focus section
- Fill out the form and submit
- Check your Loops.so dashboard to verify the contact was added
The integration includes:
- User Groups: Contacts are automatically tagged with "zkVM Spreadsheet Signups"
- Source Tracking: Form submissions are tagged with "zkVM Spreadsheet Modal" as the source
- Error Handling: User-friendly error messages if submission fails
- Success Feedback: Clear confirmation when form is submitted successfully
- Rate Limiting: Loops.so has built-in rate limiting to prevent abuse
- Check browser console for error messages
- Verify the form endpoint is accessible
- Ensure you've restarted the development server if you added a custom form ID
- Loops.so rate limits form submissions
- Wait a few minutes before testing again
- This is normal protection against spam
- Check that all required fields are being sent
- Verify custom properties are configured in Loops.so
- Check the Loops.so activity log for any errors
You can set up an automation in Loops.so to:
- Send a welcome email with the spreadsheet link
- Add contacts to a specific mailing list
- Trigger a drip campaign
To set this up:
- Go to Loops.so → Automations
- Create a new automation triggered by "Contact created"
- Add a filter for
userGroupequals "zkVM Spreadsheet Signups" - Add your email actions
For issues with:
- The form component: Check this repository's issues
- Loops.so integration: Contact support@loops.so
- Form behavior: Review the Loops.so documentation at https://loops.so/docs