Introduction
Is Duro’s Product Lifecycle Management software the source-of-truth for your parts library? This integration makes it easy to import part metadata into your Epsilon3 Builds!
As Duro change orders are approved, all products and components included in the change order are automatically imported into Epsilon3 Builds as parts. Any subcomponents and attached documents for the imported components are also imported into Epsilon3.
Installation
The integration is scoped to a single Duro library in Duro per Epsilon3 workspace.
Step 1 — Create a bootstrap API key in Duro
You can skip this section, if you already have an active API key in the library and you know its value.
In Duro, navigate to the library you want to connect to Epsilon3.
Make sure the library has Live Mode enabled.
Open the library's settings and create a new API key. This key is only used once, during install — Epsilon3 will mint its own managed key in the next step.
Copy the API key.
Step 2 — Install the integration in Epsilon3
1. In Epsilon3, navigate to Settings → Integrations.
2. Find the Duro row and click Install.
- NOTE: Make sure to install the correct version
3. Paste your Duro API key into the install wizard and click Continue.
4. Epsilon3 will look up the library the key is scoped to and show you a confirmation panel with:
Organization name
Library name
Library slug
Library ID
5. Verify these match the library you intended to connect, then click Install.
What happens behind the scenes
When you click Install, Epsilon3:
Creates a managed API key in Duro, scoped to your library. This key is named Epsilon3 Integration (<id>) and is rotated automatically before it expires — you don't need to refresh it manually.
Registers a webhook in Duro, also named Epsilon3 Integration (<id>), subscribed by default to the Change Order Resolution event.
The bootstrap API key you created in Step 1 is no longer needed after install — you can safely delete it from Duro if you wish.
Typical flow
Out of the box, the integration syncs parts to Epsilon3 whenever a change order is approved in Duro.
1. In Duro, a user creates a change order containing one or more components and submits it for approval.
2. The change order is approved in Duro.
3. Duro sends a Change Order Resolution event to Epsilon3.
4. For each component in an approved change order, Epsilon3:
Imports the component as a part (or updates the existing part if one already exists with the same CPN and revision).
Walks the component's full Bill of Materials (BOM) and imports every subcomponent at every level, linking them to the parent in Epsilon3.
Pulls the component's primary image from Duro and uses it as the part revision thumbnail.
Downloads the component's attached documents (drawings, datasheets, etc.) and attaches them to the part revision in Epsilon3.
Document-category components in Duro are treated as attachments rather than parts — they are attached to their parent component in Epsilon3, not synced as standalone parts.
If a change order is rejected or withdrawn, no sync occurs.
Notes and limits
Document downloads are skipped if the document is archived in Duro, has no download URL, or is larger than 10 MB.
Re-running a sync is safe — existing parts and files are matched by their Duro identifiers, so re-syncing the same change order will not create duplicates.
Optional functionality: Component Created and Component Updated events
By default, only the Change Order Resolution event is enabled on the webhook that Epsilon3 registers in Duro. You can opt into two additional event types to sync component changes without waiting for a change order:
Event | What it does |
Component Created | Syncs a brand-new component into Epsilon3 the moment it is created in Duro. |
Component Updated | Syncs an existing component into Epsilon3 whenever it is updated in Duro. |
How to enable
1. In Duro, navigate to the Webhooks section of your library settings.
2. Find the webhook named Epsilon3 Integration (<id>) that Epsilon3 created during install.
3. Edit the webhook and enable Component created and/or Component updated options.
4. Save your changes in Duro. No action is required in Epsilon3.
Typical flow with Component Created enabled
1. A user creates a new component in Duro and saves it.
2. Duro sends a `Component Created` event to Epsilon3.
3. Epsilon3 imports the component as a new part, walks its BOM, imports any subcomponents, and updates thumbnails for everything it touches.
4. Attached documents are not synced on this event — only on change order resolution.
Typical flow with Component Updated enabled
1. A user edits an existing component in Duro (renames it, changes its description, modifies its BOM, etc.) and saves.
2. Duro sends a `Component Updated` event to Epsilon3.
3. Epsilon3 re-syncs the component's metadata and walks its current BOM, importing any newly-introduced subcomponents and updating the assembly relationships.
4. Thumbnails are refreshed for any synced components. Attached documents are not synced on this event.
Uninstalling the integration
To uninstall the Duro integration from Epsilon3:
1. In Epsilon3, navigate to Settings → Integrations.
2. Find the Duro row and click Uninstall.
3. Confirm the uninstall.
This will:
- Archive the `Epsilon3 Integration (<id>)` webhook in Duro, so no further events will be sent.
- Deactivate the managed API key in Duro, so the credentials Epsilon3 was holding can no longer be used.
- Remove the integration's stored configuration and credentials from Epsilon3.
Parts and files that were already synced into Epsilon3 are not deleted by uninstall — they remain available in Epsilon3 Builds. After uninstalling, you can install the integration again at any time by following the installation steps above.
Legacy Duro Integration
Legacy Duro Integration
Is Duro’s Product Lifecycle Management software the source-of-truth for your parts library? This integration makes it easy to import part metadata into your Epsilon3 Builds!
As Duro change orders are approved, all products and components included in the change order are automatically imported into Epsilon3 Builds as parts. Any subcomponents of the imported products and components are also imported into Epsilon3.
Demo
Configuration
Settings > Integrations > Install
Follow this this guide to identify your API token.
Enter that into the installation modal and click continue.
Only Admins with Epsilon3 Builds enabled can install the Duro integration.
Email us at support@epsilon3.io if you don't see the "Install" button or are experiencing issues using or installing this integration.

