MAJOR UPDATE
Thanks to a massive contribution from @bastianleicht, based on the original netbox-interface-sync codebase by @rizlas and @drygdryg, the Interface Synchronization plugin now includes Component Synchronization.
This plugin allows you to compare and synchronize interface and component names / types between existing devices and new device types in NetBox 4.3+. It can be useful for finding and correcting inconsistencies between interfaces and other device components when changing the Device Type in Netbox.
Tested with NetBox versions 4.3.1+ This plugin is not compatible with Netbox 2 or 3. For those versions use the original netbox-interface-sync codebase by rizlas and drygdryg that this plugin was built on.
If your NetBox 4 installation uses virtualenv, activate it like this:
source /opt/netbox/venv/bin/activate
Install the plugin from PyPI:
pip install netbox-interface-synchronization
or clone this repository, then go to the folder with it and install the plugin:
pip install .
To enable to plugin, add the plugin's name to the PLUGINS list in configuration.py (it's usually located in /opt/netbox/netbox/netbox/) like so:
PLUGINS = [
'netbox_interface_synchronization'
]
Don't forget to restart NetBox:
sudo systemctl restart netbox
To sync the components, edit the device and set the new device type and save the device. Then find the Component Sync button at the top of the page to select the component you would like to update:
Interfaces - Mark the required actions with the checkboxes and click "Apply" at the bottom of the page.
Components - Mark the required actions with the checkboxes and click "Apply".

If you want to override the default values, configure the PLUGINS_CONFIG in your configuration.py:
PLUGINS_CONFIG = {
'netbox_interface_synchronization': {
'exclude_virtual_interfaces': True
}
}
| Setting | Default value | Description |
|---|---|---|
| exclude_virtual_interfaces | True |
Exclude virtual interfaces (VLANs, LAGs) from comparison |