> ## Documentation Index
> Fetch the complete documentation index at: https://docs.riseworks.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Management

> Creating, updating, and managing your webhook endpoints

Once you've set up your first webhook, you'll need to manage your webhook endpoints as your integration grows. The Rise app provides a comprehensive webhook management interface where you can create, update, monitor, and deactivate your webhooks.

## Accessing webhook management

To manage your webhooks:

<Steps>
  <Step title="Log in to Rise app">
    Navigate to your Rise dashboard at [app.rise.com](https://app.rise.com)
  </Step>

  <Step title="Go to Developer section">
    Click on the **Developer** section in the main navigation
  </Step>

  <Step title="Open webhooks">
    Click on **"Webhooks"** in the sidebar menu
  </Step>
</Steps>

## Webhook overview page

The webhooks page shows all your webhook endpoints in an organized list. Each webhook displays:

<CardGroup cols={2}>
  <Card title="Endpoint URL" icon="link">
    The destination where events are sent
  </Card>

  <Card title="Status indicator" icon="circle">
    Active/Inactive status with visual indicators
  </Card>

  <Card title="Event count" icon="list-ol">
    Number of subscribed event types
  </Card>

  <Card title="Performance metrics" icon="chart-line">
    Last delivery time and success rate statistics
  </Card>
</CardGroup>

## Creating a new webhook

To create a new webhook endpoint:

<Steps>
  <Step title="Start creation">
    Click the **"Create Webhook"** button on the webhooks overview page
  </Step>

  <Step title="Configure basic settings">
    Fill out the webhook form with:

    * **Endpoint URL**: Your server's webhook endpoint (HTTPS recommended for production)
    * **Secret**: A secure string for signature verification
    * **Team**: Select company-level or specific team (optional)
  </Step>

  <Step title="Select event types">
    Choose which events you want to receive:

    * Browse available events by category
    * Search for specific event types
    * Use "Select All" for comprehensive coverage
  </Step>

  <Step title="Configure delivery settings">
    Set optional delivery parameters:

    * **Active**: Enable/disable the webhook immediately
    * **Retry policy**: Customize retry attempts (uses defaults if not specified)
    * **Timeout**: Set request timeout (uses system default if not specified)
  </Step>

  <Step title="Save webhook">
    Click **"Create Webhook"** to save your configuration
  </Step>
</Steps>

<Note>
  Make sure to save your webhook secret securely - you'll need it for signature verification in your code.
</Note>

## Editing an existing webhook

To modify a webhook configuration:

<Steps>
  <Step title="Select webhook">
    Click on any webhook from the list to open its details page
  </Step>

  <Step title="Enter edit mode">
    Click the **"Edit Webhook"** button to modify settings
  </Step>

  <Step title="Update configuration">
    Modify any fields you want to change:

    * Change the endpoint URL
    * Update the secret key
    * Modify event subscriptions
    * Update team assignment
  </Step>

  <Step title="Save changes">
    Click **"Save Changes"** to apply your updates
  </Step>
</Steps>

<Warning>
  If you change the webhook secret, make sure to update your server code with the new secret before saving, or webhook deliveries will start failing.
</Warning>

## Managing event subscriptions

You can easily modify which events a webhook receives:

### Adding new events

<AccordionGroup>
  <Accordion title="From webhook details" icon="plus">
    1. Open webhook details and go to the **"Events"** tab
    2. Click **"Add Events"** button
    3. Select additional event types from the available list
    4. Save your changes
  </Accordion>

  <Accordion title="Bulk selection" icon="list-check">
    * Use **"Select All"** to subscribe to all available events
    * Use category filters to add all events from specific categories
    * Search functionality to quickly find specific event types
  </Accordion>
</AccordionGroup>

### Removing events

<Steps>
  <Step title="Navigate to events">
    Go to webhook details and click the **"Events"** tab
  </Step>

  <Step title="Remove events">
    Click the **X** button next to any events you want to unsubscribe from
  </Step>

  <Step title="Bulk removal">
    Use **"Clear All"** to remove all event subscriptions, or select multiple events for batch removal
  </Step>
</Steps>

## Webhook status management

Control when your webhooks are active or inactive:

### Deactivating webhooks

<Tabs>
  <Tab title="Temporary deactivation">
    Useful for maintenance or debugging:

    1. **Toggle the status** to deactivate the webhook
    2. **Perform your maintenance** work on your endpoint
    3. **Reactivate when ready** by toggling status back to active

    <Info>
      Events that occur while a webhook is deactivated are not queued - they will be lost. Reactivate your webhook as soon as maintenance is complete.
    </Info>
  </Tab>

  <Tab title="Permanent deactivation">
    For webhooks no longer needed:

    1. **Deactivate the webhook** using the status toggle
    2. **Review delivery history** if needed for debugging
    3. **Delete the webhook** if it will never be used again

    <Warning>
      Permanently deactivated webhooks will not receive any events. Consider keeping them temporarily deactivated if you might need them again.
    </Warning>
  </Tab>
</Tabs>

## Webhook security settings

### Updating webhook secrets

<Steps>
  <Step title="Access security settings">
    Go to webhook details and find the security section
  </Step>

  <Step title="Generate new secret">
    Click **"Update Secret"** to generate or enter a new webhook secret
  </Step>

  <Step title="Update your code">
    **Before saving**, update your server code with the new secret
  </Step>

  <Step title="Test the change">
    Use the test webhook feature to verify the new secret works correctly
  </Step>

  <Step title="Save configuration">
    Only save the new secret after confirming your code works with it
  </Step>
</Steps>

### Viewing webhook details

The webhook details panel shows:

<CardGroup cols={2}>
  <Card title="Configuration" icon="gear">
    Webhook ID, creation date, current settings, and security configuration
  </Card>

  <Card title="Performance" icon="chart-bar">
    Recent delivery statistics and success rates
  </Card>

  <Card title="Security" icon="shield">
    Secret management, signature verification status, and HTTPS usage
  </Card>

  <Card title="History" icon="clock">
    Recent delivery attempts, failures, and retry information
  </Card>
</CardGroup>

## Webhook testing

Test your webhooks without waiting for real events:

<AccordionGroup>
  <Accordion title="Quick test" icon="bolt">
    1. Go to webhook details page
    2. Click **"Test Webhook"** button
    3. Select an event type to simulate
    4. Click **"Send Test Event"**
    5. Check your server logs to confirm receipt
  </Accordion>

  <Accordion title="Advanced testing" icon="flask">
    * **Choose specific versions** if multiple event versions are available
    * **Test different event types** to verify your handler works for all subscribed events
    * **Check delivery history** for any errors or issues
  </Accordion>
</AccordionGroup>

## Monitoring webhook performance

Keep track of your webhook health with built-in monitoring:

### Key metrics

<CardGroup cols={3}>
  <Card title="Success rate" icon="percent">
    Percentage of deliveries that succeed on the first attempt
  </Card>

  <Card title="Response time" icon="stopwatch">
    Average time your endpoint takes to respond to webhook requests
  </Card>

  <Card title="Retry rate" icon="arrow-rotate-right">
    Percentage of deliveries that require retry attempts
  </Card>
</CardGroup>

### Delivery history

Access detailed delivery logs to track performance:

* **Successful deliveries** - Events delivered with 200 response
* **Failed deliveries** - Events that couldn't be delivered
* **Pending retries** - Events waiting to be retried
* **Response details** - HTTP status codes and response times

## Deleting webhooks

To permanently remove a webhook endpoint:

<Steps>
  <Step title="Access webhook details">
    Open the webhook you want to delete
  </Step>

  <Step title="Initiate deletion">
    Click the **"Delete Webhook"** button (usually in the danger zone)
  </Step>

  <Step title="Confirm deletion">
    Type the webhook name or confirm deletion in the dialog
  </Step>
</Steps>

<Warning>
  **Warning**: Deleting a webhook cannot be undone. All delivery history will be permanently lost. Consider deactivating instead if you might need the webhook again.
</Warning>

## Team-level webhook management

For organizations using teams, Rise supports different webhook scopes:

<Tabs>
  <Tab title="Company-level webhooks">
    **Scope**: Entire company

    * Receive events for all company activities
    * Managed by company administrators
    * Visible to all team members (with appropriate permissions)
    * Best for: Company-wide integrations, reporting, analytics

    <Info>
      Company-level webhooks are ideal for integrations that need visibility into all organizational activity.
    </Info>
  </Tab>

  <Tab title="Team-specific webhooks">
    **Scope**: Individual teams

    * Only receive events for specific team activities
    * Managed by team members with webhook permissions
    * Isolated from other team webhooks
    * Best for: Team-specific workflows, departmental tools

    <Info>
      Team webhooks provide granular control and help organize webhook management in larger organizations.
    </Info>
  </Tab>
</Tabs>

## Best practices for webhook management

### Organization strategies

<AccordionGroup>
  <Accordion title="Use descriptive names" icon="tag">
    **Why it matters**: As your integration grows, you'll likely have multiple webhooks for different purposes.

    **Best practices**:

    * Use clear descriptions like "Order confirmation emails to customers"
    * Include the purpose: "Inventory sync to warehouse system"
    * Add environment indicators: "Production payment processing"

    **Example**: Instead of "Webhook 1", use "Customer email notifications - Production"
  </Accordion>

  <Accordion title="Group by function" icon="layer-group">
    **Organize webhooks by business function**:

    * **Customer-facing**: Payment confirmations, order updates, account notifications
    * **Internal systems**: Analytics, reporting, inventory management
    * **Third-party integrations**: CRM sync, accounting software, marketing tools
    * **Development**: Testing, staging, debugging webhooks
  </Accordion>

  <Accordion title="Regular maintenance" icon="wrench">
    **Quarterly review process**:

    * Remove unused webhooks from discontinued features
    * Update descriptions for changed purposes
    * Review and rotate webhook secrets
    * Clean up test/development webhooks
    * Monitor performance trends
  </Accordion>
</AccordionGroup>

### Security practices

<CardGroup cols={2}>
  <Card title="Secret rotation" icon="key">
    Regularly rotate webhook secrets, especially after team member changes or security incidents
  </Card>

  <Card title="Monitor access" icon="users">
    Track who has access to webhook management and review permissions periodically
  </Card>

  <Card title="HTTPS recommended" icon="lock">
    HTTPS recommended for production endpoints; verify SSL certificate validity when using HTTPS
  </Card>

  <Card title="Activity monitoring" icon="chart-line">
    Watch for unusual patterns in delivery failures or response times
  </Card>
</CardGroup>

### Performance optimization

<AccordionGroup>
  <Accordion title="Subscribe selectively" icon="filter">
    **Principle**: Only subscribe to events you actually need

    **Benefits**:

    * Reduces server load and bandwidth usage
    * Simplifies debugging and monitoring
    * Lowers costs if you pay for webhook processing
    * Easier to maintain and understand

    **Tip**: Start with minimal events and add more as needed rather than subscribing to everything upfront.
  </Accordion>

  <Accordion title="Optimize response times" icon="gauge">
    **Target**: Respond within 5 seconds, ideally under 2 seconds

    **Strategies**:

    * Return 200 status immediately upon receipt
    * Queue heavy processing for background jobs
    * Optimize database queries and external API calls
    * Monitor response time trends
  </Accordion>

  <Accordion title="Handle failures gracefully" icon="triangle-exclamation">
    **Design for resilience**:

    * Implement idempotent event processing
    * Handle duplicate events safely
    * Log failures for investigation
    * Set up alerting for high failure rates
  </Accordion>
</AccordionGroup>

## Troubleshooting common issues

### Webhook not receiving events

<Steps>
  <Step title="Check webhook status">
    Ensure the webhook is active (not deactivated) in the Rise app
  </Step>

  <Step title="Verify event subscriptions">
    Confirm you're subscribed to the event types you expect to receive
  </Step>

  <Step title="Review delivery history">
    Check if Rise is attempting deliveries but they're failing
  </Step>

  <Step title="Test connectivity">
    Use the built-in test feature to send a test event immediately
  </Step>
</Steps>

### High failure rates

<AccordionGroup>
  <Accordion title="Server connectivity issues" icon="server">
    * Verify your server is accessible from external networks
    * Check firewall settings and port availability
    * Ensure your endpoint URL is correct and responds to POST requests
    * Test SSL certificate validity for HTTPS endpoints
  </Accordion>

  <Accordion title="Response time problems" icon="clock">
    * Optimize slow database queries or external API calls
    * Move heavy processing to background queues
    * Increase server resources if needed
    * Monitor response times and set up alerting
  </Accordion>

  <Accordion title="Code errors" icon="bug">
    * Check server logs for errors during webhook processing
    * Verify signature verification logic is correct
    * Test with different event types to isolate issues
    * Use the webhook test feature to debug specific problems
  </Accordion>
</AccordionGroup>

## What's next?

Now that you can manage webhooks effectively:

<CardGroup cols={2}>
  <Card title="Event Types Reference" icon="book" href="/webhooks/implementation/event-types">
    Explore all available events and their complete data structures
  </Card>

  <Card title="Testing Strategies" icon="flask" href="/webhooks/implementation/testing">
    Learn advanced testing techniques for development and staging
  </Card>

  <Card title="Delivery Mechanics" icon="truck" href="/webhooks/operations/delivery">
    Understand how Rise delivers webhooks and handles retries
  </Card>

  <Card title="Monitoring Guide" icon="chart-line" href="/webhooks/operations/monitoring">
    Deep dive into performance tracking and troubleshooting
  </Card>
</CardGroup>

<Tip>
  **Pro tip**: Start with fewer, well-configured webhooks and gradually add more as your integration grows. It's easier to manage and debug a smaller number of properly configured webhooks than many poorly configured ones.
</Tip>
