How to add Slack to SAP Business One
Short answer
Build a Slack app that calls the Business One Service Layer for alerts, slash commands and interactive approvals. Use Socket Mode when B1 sits behind a firewall, map Slack users to B1 users, and send changes back as drafts or activities.
Slack tends to appear in Business One companies that are younger, distribution-heavy or tech-adjacent: e-commerce suppliers, electronics distributors, small assemblers. Operations talk in channels, but order holds, stock-outs and late shipments are discovered by someone opening B1 and noticing.
A Slack app can turn those states into messages with context and a next action. The Service Layer is the safe way in; it enforces B1 authorizations and business logic, unlike direct SQL writes.
This page is specific to how B1 behaves: session handling, pagination, UDFs, and the common case of a server that has no inbound internet access.
What teams use it for
Stock-out channel
Post to a purchasing channel when an item's available quantity (on hand minus committed) drops below its minimum, with open PO coverage and lead time.
Slash command order lookup
Type /b1 order 10482 to see status, ship date, delivery and invoice state, pulled through the Service Layer.
Quote approval buttons
Post Sales Quotations above a discount threshold with Approve and Send back buttons for the sales manager.
Late shipment watch
Flag Sales Order rows past ship date without a delivery and mention the account owner stored in a UDF.
New customer creation review
Post newly created Business Partners to a finance channel so duplicates and missing tax data are caught early.
Month-end close reminders
Post lists of unposted drafts and open goods receipts without invoices for the controller.
SAP Business One integration surface
- Service Layer entities such as Orders, Quotations, DeliveryNotes, Invoices, BusinessPartners, Items and Drafts, reachable over HTTPS under the /b1s path with cookie-based sessions.
- OData query options ($filter, $select, $orderby, $top) plus server-side paging with a next link; default page sizes are small, so code must follow paging.
- Saved User Queries and, on HANA, calculation views, which let you keep complex joins like available-to-promise outside the app.
- Item availability lives across OITW (stock per warehouse) with on-hand, committed and ordered fields; reading these through queries is common for stock alerts.
- UDFs on documents and Business Partners to hold the Slack user ID, channel preferences and a 'last alerted' marker.
How it works
- 1
Create the Slack app
Define bot scopes (chat:write, commands, and user lookups only if needed), enable Interactivity, and add a slash command.
- 2
Choose the transport
Use HTTP request URLs if you can host a public endpoint, or Socket Mode so the backend opens an outbound connection and B1 never needs inbound exposure.
- 3
Link users
Store Slack user ID next to the B1 user code in a UDT. Slash commands resolve the caller and apply the matching access level.
- 4
Poll or schedule B1 queries
Run saved queries on a schedule, keep a last-alerted marker per item or document so the same alert is not repeated each cycle.
- 5
Build Block Kit messages
Include document number, key numbers and a link to the B1 Web Client or a deep link into your internal page.
- 6
Handle interactions
On button click, re-fetch the document, confirm its state, then act through the Service Layer, or create a Draft or Activity where policy requires review.
Example flows
Discount approval for a quotation
Trigger: A Quotation is saved with a discount percentage over the sales manager threshold.
- A scheduled query finds quotations in status open with U_NeedsApproval = Y.
- Bot posts a message to the manager with customer, total, margin and discount.
- Manager clicks Approve; backend checks the user mapping and quotation state.
- The UDF is set to Approved and an Activity logs approver and time.
Result: Sales can convert the quote without chasing, and the audit trail sits in B1.
Order lookup command
Trigger: A rep types /b1 order 10482 in Slack.
- The backend resolves the Slack user to a B1 user and permissions.
- It queries the order with its rows, linked deliveries and invoices.
- It returns an ephemeral message visible only to the rep.
Result: Reps get answers in seconds, without opening B1 or interrupting customer service.
Keeping data on-prem
A Business One server on a private network is the normal case, and Slack's Socket Mode fits it well: the backend opens an outbound WebSocket to Slack, so you do not publish any port. Keep the Service Layer reachable only from the backend host. Remember that Slack stores message content, so avoid pasting price lists or customer-specific pricing into channels that include contractors or guests. If you want AI-written summaries or natural-language queries, host the model locally (an open-weight model served with Ollama or vLLM) and send only the generated message to Slack. Slack's own AI features do not read your B1 data unless you send it there.
Security checklist
- Verify Slack request signatures and reject stale timestamps on every inbound HTTP call.
- Do not post to public channels by default; use private channels and ephemeral responses for sensitive lookups.
- Apply B1 authorizations through a per-user mapping rather than a single powerful bot login where reads vary by role.
- Rotate the bot token and Service Layer password; store them in a secret manager.
Ways to get it done
Workflow tools such as Zapier or Make with HTTP calls
Effort: Hours to days, but on-prem reach and paging are awkward.
Works for simple one-way alerts if your B1 endpoint can be reached from the tool.
Custom Slack app over the Service Layer
Effort: Two to five weeks depending on the flows.
Best for slash commands, approvals and per-user permissions.
Partner-built assistant with private model (Netray with a B1 partner)
Effort: Scoped project; read-only first, writes behind approval.
Fits when you want natural-language questions on B1 data inside Slack without sending data to a public model.
Pitfalls
- !Forgetting Service Layer paging so alerts miss items beyond the first page.
- !Alert storms from a threshold crossing repeatedly; add hysteresis and a cool-down.
- !Slash commands must acknowledge within three seconds; do the B1 call asynchronously and post the result after.
- !Using on-hand instead of available quantity makes stock alerts misleading when sales orders already commit stock.
Frequently asked questions
Is there an official SAP Business One Slack connector?
Not as a standard feature in the editions most customers run. Some partners and marketplace vendors offer connectors, and many teams build a small app on the Service Layer instead.
Can Slack reach my on-prem B1 server?
Not directly and it should not. Use Socket Mode with a backend inside your network, or a reverse proxy with strict path allow-listing.
Can users create documents from Slack?
They can start them. The safe pattern creates a Draft in B1 for review. Direct posting of orders or invoices from chat bypasses checks you probably rely on.
What about Slack versus Teams for B1?
Choose whichever your company already lives in. The B1 side is the same Service Layer. Teams has stronger identity integration if you use Microsoft 365; Slack is simpler for alerts and commands.
How do I keep costs down?
The Slack API is free to build against; costs are your Slack plan and hosting. Keep polling intervals sensible and cache item data to limit load on the B1 server.
Want Slack working on your SAP Business One?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessmentTry it here, free
SAP B1 Approval Procedure Template
Fill in thresholds and approvers to generate a written SAP Business One approval procedure you can sign and configure from.
New to SAP Business One? Start with the SAP Business One guide and toolkit.
Keep exploring
Free tools
- SAP B1 Approval Procedure TemplateFill in thresholds and approvers to generate a written SAP Business One approval procedure you can sign and configure from.
- SAP B1 Service Layer Sales Order JSON GeneratorFill in server, company database, customer and line details to get ready-to-test Login and sales order POST requests for the Service Layer REST API.
- SAP B1 Implementation Cost CalculatorEnter users, rates and effort days to see first-year and three-year SAP Business One cost, using your own partner quotes.
ERP fixes and how-tos
- Private AI for SAP Business One: Service Layer, a read replica and a local modelAdd a private AI assistant to SAP Business One: Service Layer reads, SQL Server or HANA replica, document index, local LLM, permissions and approvals.
- SAP Business One integration: Integration Framework (B1i), Service Layer, DI API and connectorsSAP Business One integration options compared: Integration Framework (B1i), Service Layer, DI API and SaaS connectors, and when to use each.
- Production standard cost in SAP Business One: how it works and where it stopsHow standard cost works for production orders in SAP Business One: valuation method, issue and receipt values, variances at close and process limits.
Runs with your ERP
- ECOSIRE CPQ Configurator with SAP Business One: guided quotingHow the ECOSIRE CPQ configurator uses option models, requires/excludes rules and live cost roll-up to create SAP Business One quotes and orders.
- SAP Field Service Management with SAP Business OneHow SAP Field Service Management, with Coresuite, syncs with SAP Business One service calls and billing: data flows, setup, pitfalls and a private AI layer.
- Ecosire quality control and inspection with SAP Business One: CoA, NCR and CAPAHow Ecosire's quality add-on for SAP Business One handles inspections, certificates of analysis, NCR and CAPA ageing and supplier quality reporting.
AI on your ERP
- AI for SAP Business One, Without Sending Your Books to a Public APIAdd AI to SAP Business One without sending customer data or financials to a public API. Service Layer and DI API integration, sized for an SMB budget.
- AI for SAP Business One Purchasing, From Purchase Request to A/P InvoiceGround AI in SAP Business One purchasing: purchase requests, POs, goods receipts and A/P invoices via Service Layer, read-only, on-prem or private cloud.
Integrations
- How to add Slack to SAP ECC 6.0Build a Slack app for SAP ECC 6.0: slash commands that read stock and orders via BAPIs, interactive approvals, alert channels and Socket Mode for on-prem.
- How to add Slack to SAP S/4HANAConnect Slack to SAP S/4HANA with slash commands, interactive approvals and alerts, using released OData APIs, events and a middleware layer you control.