# How to add Slack to Fishbowl

> Source: https://netray.co/integrations/fishbowl-slack
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Integrations

## Short answer

Build a small Slack app with slash commands, interactive messages and event subscriptions, backed by a service that queries Fishbowl through its API or a read-only MySQL connection. Alerts post to channels, slash commands answer stock and order questions, and approvals route through a service that checks rights before touching Fishbowl.

## System

Fishbowl

## Capability

slack

## Intro

Slack tends to be the home of ecommerce-heavy and distribution teams that run Fishbowl, often alongside Shopify, Amazon or Magento feeds. The people in the channel are not always in the Fishbowl client, yet they constantly ask whether stock is available, why an order is stuck and whether a vendor shipment landed.

Slack's strength is the slash command: a one-line question that returns a formatted answer. Its weakness for this use is that it is a public-cloud service, so what you send there leaves your building. Designing which fields appear in messages is part of the integration, not an afterthought.

Fishbowl gives you the data, but not the eventing. Slack alerts for Fishbowl are built on polling the API or on scheduled queries, which is entirely adequate for fulfilment and purchasing cadence.

## Use Cases

### Stock check slash command

**Description:** Run a command like /stock PART-123 and get on-hand, available to sell and incoming PO quantity back in the channel or privately.

### Order stuck alerts

**Description:** Orders sitting in Issued or Picking beyond a set number of hours post to a fulfilment channel with a link to the order.

### Receiving heads-up

**Description:** When a PO receipt is fulfilled, notify the sales channel that previously back-ordered parts are now available.

### Channel sync problems

**Description:** Post when marketplace orders imported into Fishbowl fail validation, such as an unknown part number or missing shipping method.

### PO sign-off

**Description:** Buttons on a Slack message let a named approver release a PO after the service confirms their rights.

## System Surface

- Fishbowl REST API on current versions, with an approved integration app and token session; confirm the exact endpoints for parts, inventory, orders and POs in your version's documentation.
- The older Fishbowl JSON API over a TCP socket, which many existing scripts and SDK wrappers still use.
- MySQL database with tables such as part, partdetail, so, soitem, po, poitem and receipt, suitable for read-only queries behind /stock style commands.
- Import tools for sales orders and inventory, handy if Slack-driven requests are staged as files rather than direct API writes.
- Fishbowl groups and user permissions that determine what the integration user can read or change.

## How It Works

### Create the Slack app

**Detail:** Use api.slack.com to create an app, add a bot user, slash commands and interactivity, then install it to the workspace with only the scopes you need such as commands and chat:write.

### Choose Socket Mode or HTTP

**Detail:** Socket Mode lets your service connect outbound to Slack without a public URL, which suits a server behind a firewall. HTTP request URLs need a reachable endpoint.

### Connect to Fishbowl

**Detail:** Create a read-only integration user, approve the app in Fishbowl, and wrap the calls you need (part lookup, inventory by location, order by number) in typed functions.

### Implement commands and alerts

**Detail:** Respond to slash commands within three seconds by acknowledging first, then posting results. Run a scheduler for polling jobs that post alerts with Block Kit formatting.

### Add interactive approvals

**Detail:** Map the Slack user ID to a Fishbowl user in a table, require a match before any action, and update the original message on completion.

### Control what leaves the network

**Detail:** Decide fields allowed in Slack: quantity and status yes, customer addresses and costs no. Apply that in the service, not by trusting channel membership.

## Example Flows

### Stock command for sales

**Trigger:** A rep types /stock followed by a part number.

**Steps:**

- The service acknowledges within the Slack time limit.
- It looks the part up and sums on-hand, committed and incoming POs.
- A Block Kit message returns quantities by location and expected dates.

**Result:** Sales quotes lead times accurately without asking the warehouse.

### Import error triage

**Trigger:** A marketplace order fails to import into Fishbowl.

**Steps:**

- A scheduled job spots the failed record or log entry.
- A message posts with order reference and reason, such as an unmapped SKU.
- A button opens a thread for ops to fix the mapping, and the service re-tries on request.

**Result:** Failed orders are seen within minutes instead of at the end of the day.

## On Prem

Run the service on a host next to the Fishbowl server and use Slack Socket Mode so it only makes outbound connections; there is then no public endpoint to defend. Fishbowl's API and MySQL stay on the LAN. If you add natural-language understanding to the bot, host an open-weight model locally so a question like which customers are waiting on this part is not sent to an external model, remembering that anything you post into Slack still goes to Slack's cloud.

## Security

- Verify Slack request signatures if you use HTTP mode, and rotate signing secrets and bot tokens.
- Request minimum OAuth scopes and avoid broad history or admin scopes.
- Never post cost, margin or customer personal data to wide channels; filter at the service level.
- Map Slack IDs to Fishbowl users and refuse actions from unmapped accounts.
- Keep the integration Fishbowl user read-only unless a specific approval flow needs a write.

## Options

### Zapier or Make with scheduled Fishbowl exports

**Fit:** Basic notifications for cloud-reachable setups or small volumes.

**Effort:** A day or two; weak for lookups and approvals.

### In-house Slack app with Bolt

**Fit:** A team comfortable with Node or Python and running a small service.

**Effort:** Two to four weeks for commands, alerts and one approval flow.

### Partner build with Netray

**Fit:** You want an assistant that answers in plain language and respects permissions, with local model hosting.

**Effort:** Pilot on a few commands and alerts, scoped per project.

## Pitfalls

- Slow slash command handlers that exceed Slack's response limit and show a timeout to users.
- Posting quantities as if exact when Fishbowl's available-to-sell depends on committed stock and allocation settings.
- Sharing an API login so every Slack action looks like the same person in Fishbowl.
- Leaving polling intervals so tight they load the Fishbowl server during picking hours.
- Assuming Slack message edits are an audit trail; keep your own log.

## Faq

### Is there a native Fishbowl and Slack connector?

**Answer:** I do not know of an official one. Fishbowl's listed integrations focus on shipping, ecommerce and accounting. Slack usually requires a custom app or an automation platform. Check Fishbowl's current integration directory because partners add listings over time.

### Can Slack work with an on-prem Fishbowl?

**Answer:** Yes. Using Socket Mode, your service connects outward to Slack and also reaches Fishbowl on the LAN, so no inbound firewall opening is needed. The Fishbowl database and API never need to face the internet.

### Can staff create orders from Slack?

**Answer:** Technically yes through the API, but it is rarely a good first step. Start with read-only lookups and alerts. If you add creation, restrict it to simple cases, validate parts and customers, and keep humans in the loop for anything priced or committed.

### What data should stay out of Slack?

**Answer:** Anything you would not email to the whole channel: unit costs, margins, customer personal details and pricing agreements. Slack stores messages in its cloud, so apply a field allowlist in the service and use direct links back to Fishbowl for the sensitive detail.

### Can I ask questions in natural language?

**Answer:** Yes with a language model in front of defined lookups. The model picks the query, the service runs it using the user's mapped permissions, and the reply quotes the returned values. Letting a model write free SQL against production is where problems start.

## Search terms

fishbowl slack integration, fishbowl slack bot, slack slash command fishbowl inventory, fishbowl inventory slack notifications, fishbowl api slack app, slack purchase order approval fishbowl, connect fishbowl to slack, fishbowl low stock slack alert

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
