Most Bricks users only know about the Email action, but the Webhook action is where the real power lives.
In this complete tutorial, I'll walk you through everything from your first webhook to a real-world MailerPress integration, plus the one local development gotcha that trips up almost everyone.
What You Will Learn
What are Webhooks?
Build a newsletter signup form with the Bricks Form element
Enable the Webhook action and add your first endpoint URL
Test webhooks using webhooks .site
Write the correct JSON payload format (with double curly braces!)
Map form fields to JSON keys using dynamic Field IDs
Add authorization headers (Bearer tokens) for secured endpoints
Send data to multiple endpoints from a single form submission
Configure max payload size & rate limiting (block spam bots)
"Continue on Error" setting explained
Customize success and error messages
REAL WORLD: Connect Bricks forms to MailerPress
Fix the Local WP webhook error using the http_request_host_is_external filter
What You Can Build With This
Once the pattern clicks, the same steps let you connect a Bricks form to almost anything:
Push signups straight into Mailchimp, MailerPress, or any ESP with an incoming webhook
Log every submission to a Google Sheet through Zapier or Make
Send an instant alert to a Slack or Discord channel when a lead comes in
Trigger a multi-step n8n workflow from a single form
Send the same submission to two systems at once, one live and one backup
No plugins stacked on top of plugins. No custom REST endpoints. Just the form element you already have.
Fix Local WP webhook error
This WordPress filter tells WordPress to treat mailer-press.local as an allowed external host when making HTTP requests.
If you are adding it through Appearance > Theme File Editor, select the Bricks Child Theme from the dropdown first, then open functions.php. Editing the parent theme means your code disappears on the next Bricks update.
add_filter( 'http_request_host_is_external', function ( $is_external, $host, $url ) {
if ( $host === 'mailer-press.local' ) {
return true;
}
return $is_external;
}, 10, 3 );Note: Replace mailer-press.local with your own local domain. It has to match the host exactly, including any hyphen, or the condition never fires.
One important note: You almost never need this on a live site. When both websites are real domains on real servers, WordPress already treats them as external. This is a local development issue only. If you do hit a blocked request on a production server, this same filter is the answer.
