Skip to main content

Confirm subscriber app setup and fire a first-listen celebration

Premium Beginner

Signing up and actually listening are two different events, and the gap between them is where subscribers quietly fall away. Somebody pays, receives a feed URL, means to set it up later, and never does — they are paying you and receiving nothing, and nothing in the payment record shows it.

Benecaster fires an event at each end of that gap: one when the subscriber’s feed URL is created, and one the first time their app actually fetches it. Together they turn a silent failure into something you can act on. Send setup help while the gap is open, stop the moment it closes, and treat a gap that never closes as its own re-engagement segment.

Notes

Fires exactly once per token: benecaster_token_first_accessed fires when last_accessed_at transitions from NULL to a timestamp. It does not fire on subsequent feed polls.

Not the same as benecaster_token_generated: Token generation fires at sign-up, before the subscriber has a podcast app configured. First-accessed fires when their app actually downloads the feed for the first time. In practice, this can be minutes, days, or weeks after sign-up. Avoid sending “you’re all set” messaging at token generation — wait for first access.

Nurture window: Between benecaster_token_generated and benecaster_token_first_accessed is the setup window. Use this gap to send setup instructions. If benecaster_token_first_accessed never fires, the subscriber signed up but never configured their app — a useful signal for a separate re-engagement flow targeting never-started subscribers.

Related Hooks

Code

<?php
add_action(
    'benecaster_token_first_accessed',
    function ( int $user_id, int $show_id, string $tier_slug ): void {
        $user = get_userdata( $user_id );
        if ( ! $user ) {
            return;
        }
        // Remove subscriber from "needs setup" nurture sequence.
        my_esp_remove_tag( $user->user_email, 'podcast-setup-pending' );
        // Trigger "you're all set!" celebration email or CRM event.
        my_crm_event( $user->user_email, 'podcast_app_configured', [
            'show_id'   => $show_id,
            'tier_slug' => $tier_slug,
        ] );
    },
    10,
    3
);

View on GitHub →

Hooks Used

Need this built rather than just documented? See our services →