# Install & upgrade

What happens when the extension is installed or updated. It seeds records, schedules jobs, and can pre-fill migrations, so you know what state a fresh environment is in before you touch the setup card.

## Installing

Install **eOne Integration for Business Central** from AppSource. You can install it two ways:

- **From the listing.** Open [eOne Integration for Business Central on Microsoft AppSource](https://marketplace.microsoft.com/en-us/product/PUBID.eone_solutions%7CAID.eone-integration-for-business-central%7CPAPPID.c08ff15e-d69e-4386-8ab9-52f8411d088f), choose **Get it now**, and pick the environment.
- **From Business Central.** Search **Tell Me** for **Extension Marketplace**, then search for eOne Integration.

Install it in every environment SmartConnect connects to, sandboxes included. Install Core first; the Project, Service, and Manufacturing add-ons depend on it and install afterward.

On a fresh per-company install the extension does the following automatically, so the setup card opens in a sensible default state:

- **Seeds the setup record** so every feature can read its configuration without inserting from a hot path.
- **Primes the license verdict** with a silent check, so the first API call is not the one that has to reach the licensing service.
- **Seeds the per-endpoint processing configuration.** One row per journal-wrapper document type, defaulted to **Auto Draft**. See [Endpoint setup](https://eonesolutions.github.io/eone-bc-integration/endpoint-setup.md).
- **Schedules the background jobs** for the availability snapshot, the posted-document projection, and the document-workflow processor, each seeded **disabled/on-hold** until you enable its feature.
- **Pre-fills a legacy migration mapping** if a retired SmartConnect extension (eCommerce or ConnectWise) is present. Configuration only, no data is copied.

> **Note:** The availability snapshot and posted-document events are **off** by default, so a fresh install adds no per-posting overhead. Turn them on only if your integration consumes those webhooks. See [Availability snapshot](https://eonesolutions.github.io/eone-bc-integration/availability-snapshot.md).

## What is seeded vs. what you configure

Install gets the *plumbing* into place (records exist, jobs are registered). It does not make product decisions for you. After installing you still:

1. Enter and verify the [license token](https://eonesolutions.github.io/eone-bc-integration/licensing.md).
2. Assign the integration account a [permission set](https://eonesolutions.github.io/eone-bc-integration/permissions.md).
3. Set each endpoint's [processing mode](https://eonesolutions.github.io/eone-bc-integration/endpoint-setup.md) and journal defaults.
4. Enable the [availability snapshot](https://eonesolutions.github.io/eone-bc-integration/availability-snapshot.md) if needed.

## Upgrading

Updates arrive automatically once a new version is published to AppSource. An upgrade never resets your configuration. When a release needs a data change it runs an upgrade step that is idempotent and safe to re-run, for example, backfilling the availability snapshot or migrating an item's legacy `No. 2` into its `Integration Id`.

> **Caution:** Do not hand-edit the extension version to force a refresh. If an environment appears to run stale objects after an update, republish with a forced sync and have users sign out and back in rather than bumping the version.

**Next:** [Licensing & activation](https://eonesolutions.github.io/eone-bc-integration/licensing.md). Every endpoint stays blocked until the token verifies.
