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

# Zapier Triggers

> Complete guide to Zapier triggers for Opigno Enterprise LIP automation workflows

## What are Zapier Triggers?

Zapier **triggers** are events that automatically start your automation workflows when something happens in your Opigno Enterprise LIP. They monitor your system for specific changes and initiate actions in other applications when those changes occur.

<Info>
  Triggers are automatically subscribed to event-registering webhooks in your Opigno instance. When an event occurs, Opigno automatically sends the required information to Zapier, which then passes that data to other apps in your Zap.
</Info>

## Available Triggers

The Opigno Enterprise Zapier integration provides 6 triggers that monitor different events in your learning management system. All triggers use webhook subscriptions that are automatically registered when you set up the integration. Zapier handles all webhook infrastructure automatically—no manual configuration required.

### Training Events

#### User Registered to Training

**Trigger Key**: `USER_REGISTERED_TO_TRAINING`
**Description**: Fires when a user registers for a training/learning path in your Opigno Enterprise instance.

<AccordionGroup>
  <Accordion title="GraphQL Query">
    This trigger uses the `registerUserToTrainingTrigger` query which fetches:

    * **Learning Path Data**: Training ID, title, and publication timestamp
    * **User Context**: User ID, UUID, and display name
  </Accordion>

  <Accordion title="Data Provided">
    * **training\_id** (string): Unique identifier of the training
    * **user\_id** (string): Internal user ID in Opigno
    * **user\_uuid** (string): Unique user identifier (UUID format)
    * **user\_display\_name** (string): User's display name
    * **training\_name** (string): Title of the training
    * **timestamp** (string): Publication timestamp of the training
  </Accordion>

  <Accordion title="Use Cases">
    * **Welcome Email Automation**: Send personalized welcome emails to newly registered users
    * **CRM Integration**: Add new learners to your CRM system automatically
    * **Slack Notifications**: Alert your team when users register for training
    * **Onboarding Workflows**: Trigger multi-step onboarding sequences
  </Accordion>
</AccordionGroup>

#### User Completed Training

**Trigger Key**: `USER_COMPLETED_TRAINING`
**Description**: Activates when a user successfully completes a training/learning path.

<AccordionGroup>
  <Accordion title="GraphQL Query">
    This trigger uses the `userCompletedTrainingTrigger` query which fetches:

    * **Learning Path Data**: Training ID, title, and publication timestamp
    * **User Context**: User ID, UUID, and display name
  </Accordion>

  <Accordion title="Data Provided">
    * **training\_id** (string): Unique identifier of the completed training
    * **user\_id** (string): Internal user ID in Opigno
    * **user\_uuid** (string): Unique user identifier (UUID format)
    * **user\_display\_name** (string): User's display name
    * **training\_name** (string): Title of the completed training
    * **timestamp** (string): Completion timestamp
  </Accordion>

  <Accordion title="Use Cases">
    * **Certificate Generation**: Automatically generate and send completion certificates
    * **Achievement Recognition**: Post completion announcements on social platforms
    * **Progress Tracking**: Update external systems with completion data
    * **Next Steps Automation**: Trigger follow-up training recommendations
  </Accordion>
</AccordionGroup>

### Live Session Events

#### User Registered to Live Session

**Trigger Key**: `USER_REGISTERED_TO_LIVE_SESSION`
**Description**: Fires when a user registers for a live session.

<AccordionGroup>
  <Accordion title="GraphQL Query">
    This trigger uses the `userRegisteredToLiveSessionTrigger` query which fetches:

    * **Live Session Data**: Session ID and bucket information (ID, title, type, status)
    * **User Context**: User ID, UUID, and display name
  </Accordion>

  <Accordion title="Data Provided">
    * **live\_session\_id** (string): Unique identifier of the live session
    * **user\_id** (string): Internal user ID in Opigno
    * **user\_uuid** (string): Unique user identifier (UUID format)
    * **user\_display\_name** (string): User's display name
    * **live\_session\_bucket\_id** (string): ID of the session bucket
    * **live\_session\_bucket\_name** (string): Name of the session bucket
  </Accordion>

  <Accordion title="Use Cases">
    * **Calendar Integration**: Add live sessions to user calendars
    * **Reminder Automation**: Send reminder emails before live sessions
    * **Attendance Tracking**: Update external systems with registration data
    * **Resource Distribution**: Share session materials with registered users
  </Accordion>
</AccordionGroup>

#### User Attended Live Session

**Trigger Key**: `USER_ATTENDED_TO_LIVE_SESSION`
**Description**: Activates when a user attends a live session.

<AccordionGroup>
  <Accordion title="GraphQL Query">
    This trigger uses the `userAttendedLiveSessionTrigger` query which fetches:

    * **Live Session Data**: Session ID, bucket info, start/end dates, and bucket requirements
    * **User Context**: User ID, UUID, and display name
  </Accordion>

  <Accordion title="Data Provided">
    * **live\_session\_id** (string): Unique identifier of the attended live session
    * **user\_id** (string): Internal user ID in Opigno
    * **user\_uuid** (string): Unique user identifier (UUID format)
    * **user\_display\_name** (string): User's display name
    * **live\_session\_bucket\_id** (string): ID of the session bucket
    * **live\_session\_bucket\_name** (string): Name of the session bucket
    * **live\_session\_start\_date** (integer): Start date timestamp of the session
    * **timestamp** (integer): End date timestamp of the session
  </Accordion>

  <Accordion title="Use Cases">
    * **Attendance Tracking**: Update HR systems with attendance records
    * **Follow-up Automation**: Send post-session surveys or materials
    * **Certificate Generation**: Issue attendance certificates
    * **Analytics Integration**: Track live session engagement metrics
  </Accordion>
</AccordionGroup>

### Certificate Events

#### Certificate Expired

**Trigger Key**: `CERTIFICATE_EXPIRED`
**Description**: Fires when a user's certificate expires.

<AccordionGroup>
  <Accordion title="GraphQL Query">
    This trigger uses the `certificateExpiredTrigger` query which fetches:

    * **Certificate Data**: Certificate ID, related training info, expiration date, download URL, validation date, and status
    * **User Context**: User UUID and display name
  </Accordion>

  <Accordion title="Data Provided">
    * **certificate\_id** (string): Unique identifier of the expired certificate
    * **user\_uuid** (string): Unique user identifier (UUID format)
    * **user\_display\_name** (string): User's display name
    * **related\_training\_id** (string): ID of the training the certificate was for
    * **related\_training\_name** (string): Name of the training the certificate was for
    * **timestamp** (integer): Expiration timestamp
  </Accordion>

  <Accordion title="Use Cases">
    * **Renewal Notifications**: Send automated renewal reminders to users
    * **Compliance Tracking**: Update compliance systems with expired certificates
    * **Re-training Automation**: Trigger re-enrollment in required training
    * **Manager Alerts**: Notify managers of team member certificate expirations
  </Accordion>
</AccordionGroup>

### Training Management Events

#### New Revision for Training

**Trigger Key**: `LEARNING_PATH_NEW_REVISION`
**Description**: Activates when a new revision of a training becomes available.

<AccordionGroup>
  <Accordion title="GraphQL Query">
    This trigger uses the `newRevisionForTrainingTrigger` query which fetches:

    * **Learning Path Data**: Training ID, title, and publication timestamp
  </Accordion>

  <Accordion title="Data Provided">
    * **training\_id** (string): Unique identifier of the updated training
    * **training\_name** (string): Title of the training
    * **timestamp** (string): Publication timestamp of the new revision
  </Accordion>

  <Accordion title="Use Cases">
    * **Content Distribution**: Automatically share new training announcements
    * **Marketing Automation**: Promote updated content through various channels
    * **Team Notifications**: Alert relevant teams about new training versions
    * **External System Updates**: Sync training catalogs with other platforms
  </Accordion>
</AccordionGroup>

## Setting Up Triggers

All Opigno Enterprise triggers use webhook subscriptions that are automatically registered during setup. When events occur in Opigno, the system automatically sends the required information to the subscribed webhooks with trigger-specific data.

<Steps>
  <Step title="Choose Your Trigger">
    1. In Zapier, select **Opigno Enterprise** as your trigger app
    2. Choose from the 6 available triggers based on your automation needs:
       * **Training Events**: User registration and completion
       * **Live Session Events**: Registration and attendance tracking
       * **Certificate Events**: Expiration monitoring
       * **Training Management**: New revision notifications
    3. Review the trigger description and data structure
  </Step>

  <Step title="Configure Authentication">
    1. Connect your Opigno Enterprise account using your API credentials
    2. Ensure your API user has appropriate permissions for the data being accessed
    3. Test the connection to verify authentication works correctly
  </Step>

  <Step title="Understand Trigger Data">
    Each trigger is automatically subscribed to specific webhook events and receives relevant data:

    **Training Triggers** (`USER_REGISTERED_TO_TRAINING`, `USER_COMPLETED_TRAINING`):

    * Triggered when users register for or complete training
    * Receives user UUID, training ID, and event details

    **Live Session Triggers** (`USER_REGISTERED_TO_LIVE_SESSION`, `USER_ATTENDED_TO_LIVE_SESSION`):

    * Triggered when users register for or attend live sessions
    * Receives user UUID, live session ID, and session details

    **Certificate Trigger** (`CERTIFICATE_EXPIRED`):

    * Triggered when certificates expire
    * Receives certificate ID, user UUID, and training details

    **Training Management Trigger** (`LEARNING_PATH_NEW_REVISION`):

    * Triggered when new training revisions are published
    * Receives training ID and publication details
  </Step>

  <Step title="Test Your Trigger">
    1. Use Zapier's test feature to retrieve recent webhook data
    2. Review the output fields to ensure they contain the expected information
    3. Verify the data types match your automation requirements
    4. Confirm that events from your Opigno instance trigger the webhook correctly
  </Step>
</Steps>

## Best Practices

### Webhook Infrastructure

<Tip>
  **Automatic Webhook Registration**: Zapier automatically subscribes to event-registering webhooks when you set up triggers. When events occur in Opigno, the system automatically sends the required information to Zapier. Ensure your Opigno instance can reliably send webhook notifications for consistent trigger operation.
</Tip>

<Warning>
  **Permission Requirements**: The certificate trigger uses client UUID masquerading due to permission limitations. This is a temporary workaround that should be monitored for security implications.
</Warning>

### Data Management

* **Validate Webhook Data**: Verify that webhook payloads contain all expected fields (user\_uuid, training\_id, etc.)
* **Handle Missing Data**: Triggers include fallback values for missing data, but verify critical fields are present
* **Test with Real Events**: Always test triggers by performing actual events in your Opigno instance
* **Monitor Error Handling**: Triggers throw descriptive errors when webhook processing or GraphQL queries fail

### Security Considerations

* **API Permissions**: Ensure your API user has appropriate permissions for all data being accessed
* **Webhook Security**: Zapier securely handles webhook authentication automatically—no manual configuration needed
* **Data Privacy**: Be mindful of sensitive user information in trigger data (UUIDs, display names)
* **Audit Trails**: Monitor webhook deliveries and trigger executions for security compliance

## Troubleshooting Triggers

<AccordionGroup>
  <Accordion title="Trigger Not Firing">
    **Common causes:**

    * No new events have occurred in your Opigno instance
    * Webhook subscriptions not properly established during setup
    * Authentication issues with Opigno API
    * Opigno system unable to send webhook notifications
    * Insufficient API permissions for the data being accessed

    **Solutions:**

    * Verify that the expected events are actually occurring in Opigno (e.g., users registering for training)
    * Reconnect your Zapier integration to re-establish webhook subscriptions
    * Test API credentials and ensure they haven't expired
    * Check that your API user has appropriate permissions for all queried data
    * Verify your Opigno instance can send outbound webhook requests
    * Review webhook delivery logs in Zapier's trigger history
  </Accordion>

  <Accordion title="Incomplete Data">
    **Common causes:**

    * Webhook payload missing required fields
    * GraphQL query returning null values
    * Insufficient API permissions for specific data
    * User context not found for provided UUID
    * Event data incomplete in Opigno when webhook is sent

    **Solutions:**

    * Review webhook payload structure in Zapier's trigger history
    * Check API user permissions for all required data
    * Test with valid user UUIDs and training IDs
    * Verify that events in Opigno contain all necessary information before triggering webhooks
    * Check webhook delivery logs for payload details
  </Accordion>

  <Accordion title="GraphQL Errors">
    **Common causes:**

    * Invalid training\_id or user\_uuid in webhook payload
    * API user lacks permissions for specific queries
    * Opigno instance configuration issues
    * Network connectivity problems between Opigno and Zapier

    **Solutions:**

    * Review webhook payload data in Zapier's trigger history
    * Verify that webhook data contains valid IDs
    * Ensure API user has appropriate permissions
    * Test GraphQL queries directly against Opigno API
    * Check Opigno instance logs for webhook delivery errors
    * Confirm API connectivity and webhook delivery reliability
  </Accordion>
</AccordionGroup>

## Next Steps

Once you've set up your triggers, explore how to:

<CardGroup cols={2}>
  <Card title="Zapier Actions" icon="play" href="/zapier-integration/components/actions">
    Learn how to configure actions that respond to your triggers and automate workflows.
  </Card>

  <Card title="Zapier Searches" icon="search" href="/zapier-integration/components/searches">
    Discover how to find and retrieve specific data from your Opigno instance.
  </Card>
</CardGroup>
