> For the complete documentation index, see [llms.txt](https://learn.moselle.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.moselle.io/getting-started/onboarding/setup-integrations/fishbowl.md).

# Fishbowl

Connect Fishbowl to Moselle to sync parts, inventory, sales orders, and purchase orders. See the server, user, and network details our team needs to set it up.

{% hint style="info" %}
**Quick Answer:** The Fishbowl integration syncs your parts, inventory, sales orders, and purchase orders to Moselle automatically. Setup is assisted — our team configures the connection together with your Fishbowl admin.
{% endhint %}

## What is the Fishbowl Integration?

**The Fishbowl integration** connects your Fishbowl Advanced server to Moselle's planning engine so your forecasts and replenishment plans are based on real, current inventory.

### Key Benefits:

* **Automated Sync:** Regular updates of parts, inventory, sales orders, and purchase orders.
* **Unified Planning:** See your Fishbowl data alongside every other channel in one dashboard.
* **Accurate Forecasting:** Use historical Fishbowl sales data to predict future demand.

## Prerequisites

**Time Required:** 15-30 minutes to gather information, plus coordination with your IT/admin team **Difficulty:** Moderate

Because Fishbowl is typically self-hosted, setup takes a bit more coordination than a cloud-only platform. Before you begin, gather the following:

### 1. Your Fishbowl server details

* [ ] The address (URL or hostname) of your Fishbowl server, and whether it runs on your own network or through Fishbowl Hosted Services
* [ ] The API port number (defaults to `2456`; found in **Fishbowl Server Administration → server settings**) — note this is different from the port the Fishbowl client itself uses
* [ ] Confirmation that the server is set up with HTTPS/SSL. If it isn't yet, this needs to be enabled before going live, since login credentials travel over this connection

### 2. A dedicated Fishbowl user for Moselle

* [ ] A new Fishbowl user created just for this integration (e.g. `moselle-api`), rather than a shared personal login
* [ ] Read access on that user to the modules being synced: parts/products, inventory, sales orders, and purchase orders
* [ ] Multi-factor authentication (MFA) disabled on this user — automated integrations can't enter MFA codes

{% hint style="warning" %}
**Share credentials securely**

Please don't email the password directly. We'll send a secure link for you to share the username and password.
{% endhint %}

### 3. Network access (on-premise servers only)

* [ ] If your Fishbowl server runs on your own network, your IT team will need to make the API port reachable from the internet (typically a port-forward or firewall rule). We can provide our IP addresses so access can be restricted to just Moselle.
* [ ] If you're on Fishbowl Hosted Services, you can skip this step — just confirm your public hostname.

### 4. Your Fishbowl version

* [ ] Confirmation that you're on **Fishbowl Advanced**
* [ ] Your server version number (shown in the Fishbowl client under **Help → About**)

## How to Connect

Currently, the setup process is handled by our team to ensure the connection is configured correctly.

{% stepper %}
{% step %}

#### Gather Your Details

Collect your server address, API port, SSL status, dedicated user credentials, network access details, and version number from the checklists above.
{% endstep %}

{% step %}

#### Contact Support

Email <support@moselle.io> with your server and user details (sharing the password via our secure link, not email) to request the Fishbowl integration.
{% endstep %}

{% step %}

#### Approve Moselle in Fishbowl

We'll coordinate a time to first connect. The first time Moselle logs in, Fishbowl will prompt an admin on your side to approve the "Moselle" integrated app inside the Fishbowl client — this takes about a minute, so please have someone with admin access available.
{% endstep %}

{% step %}

#### Verification

Once configured, our team will confirm that data is flowing correctly. You should see your parts and inventory populate in Moselle shortly after.
{% endstep %}
{% endstepper %}

## Data Synchronization Details

### Sync Schedule

Moselle performs a regular sync of your connected modules to keep stock levels and order statuses current.

### What Syncs

* **Parts/Products:** Your Fishbowl product catalog
* **Inventory:** Stock on hand across your Fishbowl locations
* **Sales Orders:** Historical and open sales order data
* **Purchase Orders:** Open and confirmed purchase orders, including expected receipt dates

## Troubleshooting & FAQ

| Problem / Question                                | Solution / Answer                                                                                                                                                    |
| ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Connection request is rejected**                | Confirm the API port (default `2456`) is open and reachable, and that HTTPS/SSL is enabled on the server.                                                            |
| **Moselle can't log in after approval**           | Make sure an admin approved the "Moselle" integrated app inside the Fishbowl client when prompted.                                                                   |
| **Data isn't syncing**                            | Verify the dedicated Moselle user still has read access to parts/products, inventory, sales orders, and purchase orders, and that MFA remains disabled on that user. |
| **We moved to Fishbowl Hosted Services**          | Contact <support@moselle.io> with your new public hostname so we can update the connection.                                                                          |
| **Can I use my personal Fishbowl login instead?** | We recommend a dedicated `moselle-api`-style user so access can be scoped and rotated independently of any one person's account.                                     |
