Automatically enroll Gravity Forms submissions as Benecaster subscribers
If you collect email addresses through Gravity Forms — for a live event, a manual enrollment flow, or a waitlist — you can have each submission automatically create a Benecaster subscriber on a specific tier, without anyone touching the admin. The new subscriber gets a WordPress account, a feed token, and a welcome email, all triggered by the form submission.
The setup is entirely in Gravity Forms: add a Webhook feed to your form, point it at Benecaster’s enrollment endpoint, and authenticate it with a WordPress Application Password. No custom PHP is required for the enrollment itself.
The code example shows an optional follow-up: hooking into benecaster_subscription_activated to tag the newly enrolled user in a CRM. The source parameter lets you target only webhook-enrolled subscribers rather than paid signups.
The target show must use Built-in Membership. On a show whose membership plugin is MemberPress, WooCommerce Subscriptions, Paid Memberships Pro or Restrict Content Pro, or that has none connected, a subscriber batch is refused with 409 bridge_not_builtin and nothing is enrolled — the endpoint would otherwise create a built-in subscription that plugin never sees. On those shows, enroll paying members through the membership plugin itself and let Benecaster’s bridge pick them up. Reproducing this automatic Gravity Forms flow on those shows isn’t something Benecaster’s hooks support — it would need to happen inside the membership plugin itself, using its own webhook or automation features; consult that plugin’s documentation. If the form is collecting free followers rather than paying members, post "token_type": "follower" (no tier_slug) instead — that path works on every show.
Code
<?php
// Gravity Forms webhook Request Body (Select Fields):
// {
// "addresses": ["{Email:1}"],
// "tier_slug": "supporter"
// }
//
// The target show must use Built-in Membership — on any other membership plugin, or none,
// this returns 409 bridge_not_builtin and enrolls nobody. To add free followers instead
// (works on any show), post "token_type": "follower" with no tier_slug.
// Optional: react to the enrollment server-side (e.g. tag the user in a CRM).
add_action( 'benecaster_subscription_activated', function ( int $user_id, int $show_id, string $tier_slug, string $source ): void {
if ( 'admin_enrolled' !== $source ) {
return; // Only react to bulk/webhook enrollments, not paid signups.
}
my_crm_tag_user( $user_id, 'benecaster-webhook-enrolled' );
}, 10, 4 );
Hooks Used
Need this built rather than just documented? See our services →