> ## 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 Actions

> Complete guide to Zapier actions for automating Opigno Enterprise LIP operations and workflows

## What are Zapier Actions?

Zapier **actions** are operations that your automation workflows perform in your Opigno Enterprise LIP. They execute specific tasks like creating users, updating assignments, or managing learning content based on triggers from other applications.

<Info>
  Actions are the "do" part of your automation - they take data from triggers and use it to perform specific operations in your Opigno instance.
</Info>

## Available Actions

The Opigno Enterprise Zapier integration provides 2 actions that allow you to register users for training and live sessions in your learning management system. All actions use GraphQL mutations to create registrations and provide structured results for automation workflows.

### Registration Actions

#### Register User to Training

**Action Key**: `register_user_to_training_create`\
**Description**: Registers a user for a specific training/learning path in your Opigno Enterprise instance.

<AccordionGroup>
  <Accordion title="GraphQL Mutation">
    This action uses the `createLpIndividualMembership` mutation which:

    * **Creates Individual Membership**: Establishes a user's enrollment in a learning path
    * **Returns Membership Data**: Provides membership ID and type information
    * **Handles Errors**: Returns detailed error messages for failed registrations
  </Accordion>

  <Accordion title="Required Input Parameters">
    * **user\_id** (string, required): The user context UUID that uniquely identifies the user in Opigno Enterprise. This UUID must be created using the `setUserContext` mutation and passed in API requests via the `Opigno-Client-UUID` header. Learn more about [User Context Management](/OpignoEnterpriseAPI/UserContextManagement).
    * **training\_id** (string, required): The unique identifier of the training/learning path to register the user for. This is the Learning Path ID that can be obtained from the [Catalog](/OpignoEnterpriseAPI/RetrieveCatalog) or [My Learning](/OpignoEnterpriseAPI/MyLearningPage) queries. See [Learning Path](/OpignoEnterpriseAPI/LearningPath) for more details.
  </Accordion>

  <Accordion title="Returned Data">
    * **id** (string): The membership ID created for the user's enrollment
    * **type** (string): The type of membership created (typically 'INDIVIDUAL\_MEMBERSHIP')
  </Accordion>

  <Accordion title="Use Cases">
    * **Automated Training Assignment**: Register users for training based on job roles or departments
    * **Compliance Training**: Automatically register users for required compliance courses
    * **Onboarding Automation**: Register new employees for onboarding paths
    * **Skill Development**: Register users for learning paths based on performance reviews
  </Accordion>
</AccordionGroup>

#### Register User to Live Session

**Action Key**: `register_user_to_live_session_create`\
**Description**: Registers a user for a specific live session in your Opigno Enterprise instance.

<AccordionGroup>
  <Accordion title="GraphQL Mutation">
    This action uses the `registerToLiveSession` mutation which:

    * **Creates Live Session Registration**: Establishes a user's enrollment in a live session
    * **Returns Registration Data**: Provides registration ID, related learning path, and attendance status
    * **Handles Errors**: Returns detailed error messages for failed registrations
  </Accordion>

  <Accordion title="Required Input Parameters">
    * **user\_id** (string, required): The user context UUID that uniquely identifies the user in Opigno Enterprise. This UUID must be created using the `setUserContext` mutation and passed in API requests via the `Opigno-Client-UUID` header. Learn more about [User Context Management](/OpignoEnterpriseAPI/UserContextManagement).
    * **live\_session\_id** (string, required): The unique identifier of the live session to register the user for. Live session IDs can be retrieved using the `getLiveSession`, `getLiveSessions`, or `getLiveSessionBucket` queries. See [Live Session](/OpignoEnterpriseAPI/LiveSession) for details on retrieving live session information.
  </Accordion>

  <Accordion title="Returned Data">
    * **id** (string): The registration ID created for the user's enrollment
    * **relatedLpId** (string): The ID of the related learning path (if applicable)
    * **isAttended** (boolean): Whether the user has attended the live session
  </Accordion>

  <Accordion title="Use Cases">
    * **Live Session Management**: Register users for scheduled live training sessions
    * **Event Registration**: Automatically register users for training events
    * **Calendar Integration**: Register users and sync with calendar systems
    * **Attendance Tracking**: Track and manage live session attendance
  </Accordion>
</AccordionGroup>

## Setting Up Actions

All Opigno Enterprise actions use GraphQL mutations to create user registrations for training and live sessions. Each action requires specific input parameters and returns structured data for automation workflows.

<Steps>
  <Step title="Choose Your Action">
    1. In Zapier, select **Opigno Enterprise** as your action app
    2. Choose from the 2 available actions based on your automation needs:
       * **Register User to Training**: Register users for learning paths/training
       * **Register User to Live Session**: Register users for live training sessions
    3. Review the action description and required parameters
  </Step>

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

  <Step title="Set Up Action Parameters">
    Both actions require specific input parameters:

    **Register User to Training**:

    * **user\_id** (string): The ID of the user to register
    * **training\_id** (string): The ID of the training/learning path

    **Register User to Live Session**:

    * **user\_id** (string): The ID of the user to register
    * **live\_session\_id** (string): The ID of the live session

    **Parameter Mapping**:

    * Map data from previous Zap steps to these required parameters
    * Ensure the user\_id corresponds to a valid user in your Opigno instance
    * Verify the training\_id or live\_session\_id exists and is accessible
  </Step>

  <Step title="Handle Action Results">
    1. Both actions return structured data with registration information
    2. Set up conditional logic based on the returned values:
       * **Training Registration**: Use membership ID and type for tracking
       * **Live Session Registration**: Use registration ID and attendance status
    3. Configure error handling for failed registrations
    4. Map action results to subsequent Zap steps
  </Step>

  <Step title="Test Your Action">
    1. Use Zapier's test feature with valid user IDs and training/session IDs
    2. Verify that registrations are created successfully in your Opigno instance
    3. Test with different users and trainings/sessions to ensure reliability
    4. Check error handling for invalid parameters
  </Step>
</Steps>

## Error Handling

### Common Action Errors

<AccordionGroup>
  <Accordion title="Authentication Errors">
    **Symptoms:**

    * "Unauthorized" or "Forbidden" errors
    * Actions fail to execute

    **Solutions:**

    * Verify API credentials are correct
    * Check user permissions for creating registrations
    * Ensure API user has access to the specified training/session
    * Regenerate API tokens if expired
  </Accordion>

  <Accordion title="GraphQL Mutation Errors">
    **Symptoms:**

    * "Registration failed" error messages
    * Actions fail with GraphQL error details
    * Invalid user\_id or training\_id/live\_session\_id parameters

    **Solutions:**

    * Validate all input parameters before making requests
    * Ensure user\_id corresponds to a valid user in Opigno
    * Verify training\_id or live\_session\_id exists and is accessible
    * Check for duplicate registrations (user already registered)
    * Review GraphQL mutation error messages for specific issues
  </Accordion>

  <Accordion title="Duplicate Registration Errors">
    **Symptoms:**

    * "User already registered" or similar error messages
    * Actions fail when trying to register existing users

    **Solutions:**

    * Use search actions to check for existing registrations first
    * Implement conditional logic to handle duplicate registrations
    * Use different actions for updating existing registrations
    * Set up proper error handling workflows for duplicate scenarios
  </Accordion>
</AccordionGroup>

## Best Practices

### Action Optimization

* **Parameter Validation**: Always validate user\_id, training\_id, and live\_session\_id before making requests
* **Error Handling**: Implement proper error handling for GraphQL mutation failures
* **Duplicate Prevention**: Check for existing registrations before creating new ones
* **Testing**: Always test actions with real data before going live

### Data Management

* **ID Validation**: Ensure all IDs correspond to valid entities in your Opigno instance
* **Registration Tracking**: Use returned registration IDs for tracking and follow-up actions
* **Error Logging**: Log registration failures for debugging and monitoring
* **Audit Trails**: Monitor action execution for compliance and debugging

### Security Considerations

* **Access Control**: Ensure API user has appropriate permissions for creating registrations
* **Data Privacy**: Be mindful of sensitive user information in registration data
* **API Limits**: Monitor API usage to avoid rate limiting
* **Permissions**: Regularly review and update user permissions for registration actions

## Advanced Action Patterns

### Conditional Registration Actions

Set up registration actions that only execute under specific conditions:

```javascript Conditional Registration Logic theme={null}
// Only register user for training if they meet criteria
if (userDepartment === "Sales" && trainingType === "Sales Training") {
  // Execute register user to training action
  await registerUserToTraining(user_id, training_id);
} else {
  // Skip registration or send notification
  await sendNotification("User not eligible for this training");
}
```

### Multi-Step Registration Workflows

Chain multiple registration actions together for complex workflows:

<Steps>
  <Step title="Check Existing Registration">
    Use search actions to check if user is already registered
  </Step>

  <Step title="Register for Training">
    Register user for the main training program
  </Step>

  <Step title="Register for Live Session">
    Register user for associated live session (if applicable)
  </Step>

  <Step title="Send Confirmation">
    Send confirmation email with registration details
  </Step>

  <Step title="Update External System">
    Update CRM or HR system with registration status
  </Step>
</Steps>

## Next Steps

Explore more automation capabilities:

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

  <Card title="Zapier Triggers" icon="zap" href="/zapier-integration/components/triggers">
    Discover how to set up automated triggers for your workflows.
  </Card>
</CardGroup>
