# Sequences & Recurring Campaign Hooks
These action hooks fire during email sequence lifecycle events and recurring campaign operations. All hooks on this page require FluentCRM Pro.
## Email Sequences
### `fluentcrm_email_sequence_completed`
Fires when a subscriber completes all emails in a sequence. Useful for triggering post-sequence actions or tracking completion.
**Parameters**
- `$subscriberId` INT - Subscriber ID
- `$campaignId` INT - Sequence campaign ID
**Usage:**
```php
add_action('fluentcrm_email_sequence_completed', function($subscriberId, $campaignId) {
// Subscriber finished the email sequence
$subscriber = FluentCrmApi('contacts')->getContact($subscriberId);
// Trigger post-sequence logic
}, 10, 2);
```
**Source:** `fluentcampaign-pro/app/Models/Sequence.php`, `fluentcampaign-pro/app/Hooks/Handlers/EmailScheduleHandler.php`
---
### `fluent_crm/sequence_reapplied`
Fires when a sequence is re-applied to subscribers (e.g., for recurring enrollment).
**Parameters**
- `$data` Array - contains `sequence_id`, `next_execution_time`, and `next_sequence_id`
**Usage:**
```php
add_action('fluent_crm/sequence_reapplied', function($data) {
// $data['sequence_id'] - the sequence being re-applied
// $data['next_execution_time'] - when the next email fires
// $data['next_sequence_id'] - next email ID in the sequence
});
```
**Source:** `fluentcampaign-pro/app/Models/Sequence.php`
---
### `fluentcrm_sequence_deleted`
Fires when an email sequence is deleted.
**Parameters**
- `$sequenceId` INT - deleted sequence ID
**Usage:**
```php
add_action('fluentcrm_sequence_deleted', function($sequenceId) {
// Clean up related data
});
```
**Source:** `fluentcampaign-pro/app/Http/Controllers/SequenceController.php`
---
### `fluentcrm_sequence_email_deleted`
Fires when a specific email within a sequence is deleted.
**Parameters**
- `$emailId` INT - deleted sequence email ID
**Usage:**
```php
add_action('fluentcrm_sequence_email_deleted', function($emailId) {
// Individual sequence email was removed
});
```
**Source:** `fluentcampaign-pro/app/Http/Controllers/SequenceMailController.php`
---
## Recurring Campaigns
### `fluent_crm/recurring_mail_created`
Fires when a new mail instance is generated from a recurring campaign.
**Parameters**
- `$recurringMail` Campaign Model - the generated mail
- `$campaign` Campaign Model - the parent recurring campaign
**Usage:**
```php
add_action('fluent_crm/recurring_mail_created', function($recurringMail, $campaign) {
// A new recurring mail was generated
}, 10, 2);
```
**Source:** `fluentcampaign-pro/app/Hooks/Handlers/RecurringCampaignHandler.php`
---
### `fluent_crm/recurring_mail_created_as_draft`
Fires when a recurring mail is generated in draft status (requires manual review before sending).
**Parameters**
- `$recurringMail` Campaign Model - the generated draft mail
- `$campaign` Campaign Model - the parent recurring campaign
**Usage:**
```php
add_action('fluent_crm/recurring_mail_created_as_draft', function($recurringMail, $campaign) {
// Notify admin to review the draft
}, 10, 2);
```
**Source:** `fluentcampaign-pro/app/Hooks/Handlers/RecurringCampaignHandler.php`