# Suggested Workflow

This guide provides a recommended workflow for using the plugin after installation. Following this order helps ensure smooth operation and avoids common issues.

## 1. Configure Plugin Settings

Navigate to **Plugins → LibreNMS Plugin → Settings** and configure:

- **LibreNMS Server**: Select which server to use (if multi-server setup)
- **Device Naming**: Set your preferred defaults for "Use sysName" and "Strip Domain" - see [Import Settings](../librenms_import/import_settings.md)
- **Virtual Chassis Naming**: Configure the member naming pattern if you plan to import stackable devices

**Why first**: These defaults apply to all imports and save time by reducing per-import configuration.

## 2. Verify Custom Field

As of version 0.4.4, the plugin **automatically creates** the `librenms_id` custom field when migrations are run. No manual setup is required. See the [Custom Field Setup](custom_field.md) guide for details on how the field works and optional manual configuration.

**Why early**: This field enables the most reliable device matching and is required for interface, cable, and IP address synchronization features. It is created automatically during `manage.py migrate`, so just verify it exists before importing.

## 3. Prepare NetBox Data

Ensure NetBox has the basic objects needed for device imports:

- **Sites**: Create Sites that match your LibreNMS locations (exact name matching works best)
- **Device Types**: Add Device Types for your common hardware models
- **Device Roles**: Create appropriate roles (Switch, Router, Firewall, etc.)
- **Platforms**: Add Platforms matching your LibreNMS OS names (optional but helpful)

**Why before importing**: The plugin auto-matches these objects during import. Pre-creating them reduces manual configuration during the import process.

## 4. Configure Interface Mappings

If you have specific interface type mapping requirements, configure them via **Plugins → LibreNMS Plugin → Interface Type Mappings** - see [Interface Mappings](interface_mappings.md).

**Why**: Ensure specific NetBox interface types are used for your LibreNMS interface data.

## 5. Import Devices

Use the [Device Import](../librenms_import/overview.md) feature to bring devices into NetBox:

1. Navigate to **Plugins → LibreNMS Plugin → Import → LibreNMS Import**
2. Apply filters to find devices (start with Location or Type)
3. Review validation status and configure missing fields
4. Import devices individually or in bulk

**Tips**:

- Start with a small set (single location or device type) to verify your setup
- Enable Virtual Chassis detection only when importing stackable switches

## 6. Sync VLAN
- Create VLAN objects in NetBox from LibreNMS device VLAN data
- Per-VLAN group assignment with scope-aware auto-selection

## 7. Sync Interfaces

After devices are imported, sync their interfaces:

1. Navigate to a device in NetBox
2. Use the LibreNMS sync button to pull interface data
3. Review and adjust [Interface Mappings](interface_mappings.md) if needed

**Why after import**: Interfaces require the device to exist in NetBox first. The `librenms_id` field set during import enables accurate synchronization.

## 8. Sync Cables and IP Addresses

Complete your device data by syncing:

- **Cables**: Pull link data from LibreNMS to create cable connections
- **IP Addresses**: Import IP assignments to populate NetBox's IPAM

**Why last**: Both features require that interfaces already exist in NetBox and ideally with the `librenms_id` field set. The `librenms_id` field on interfaces ensures accurate matching.

## 9. Sync Locations (Optional)

If you want to synchronize location latitude/longitude data between NetBox Sites and LibreNMS locations, use the location sync feature.

**Why optional**: Only needed if you maintain geographic coordinates and want bidirectional sync.

## Next Steps

After completing the initial workflow:

- Regular imports: Use the same import process for new devices as they're added to LibreNMS
- Interface updates: Re-sync interfaces periodically to capture configuration changes
- Virtual Chassis: See [Virtual Chassis](virtual_chassis.md) for managing multi-member devices
- Background Jobs: Understand [Background Jobs & Caching](../librenms_import/background_jobs.md) for performance optimization
