Integrations
Your TIER 1 meeting runs daily at 08:00 in the Brussels plant. When a deviation is escalated to TIER 2, the Production Manager needs an immediate Slack notification. When an action item is overdue, the Engineering channel in Microsoft Teams needs an Adaptive Card with a direct link to the item. ProBeya integrations deliver rich, formatted notifications to Slack and Microsoft Teams channels in real time, keeping your operational teams informed without requiring them to have ProBeya open.
Integrations vs. Webhooks: Choosing the Right Approach
| Criterion | Integrations (Slack/Teams) | Webhooks (Generic HTTP) |
|---|---|---|
| Output format | Rich formatted messages (Block Kit / Adaptive Cards) | Raw JSON payload |
| Target | Slack channels, Teams channels | Any HTTP endpoint |
| Authentication | Platform webhook URL | HMAC-SHA256 signature |
| Delivery guarantee | Fire-and-forget (errors logged, not retried) | Logged with retry (auto-disable after 10 failures) |
| Delivery log | Basic event log | Full delivery log with HTTP status codes |
| Configuration | Platform + events + webhook URL | Events + endpoint URL + signing secret |
| Best for | Team notifications, meeting alerts | System integration, ESB, SIEM |
Use Integrations for human-readable notifications to communication channels. Use Webhooks for machine-to-machine event processing. For a complete event-driven architecture, configure both: integrations for team awareness, webhooks for system automation.
Supported Platforms
| Platform | Type | Message Format | Authentication |
|---|---|---|---|
| Slack | slack | Block Kit (sections, fields, action buttons) | Incoming Webhook URL |
| Microsoft Teams | teams | Adaptive Cards (text blocks, fact sets, columns) | Incoming Webhook URL |
Supported Events
Select which events trigger notifications. At least one event must be selected per integration:
| Event | Description | TIER Meeting Context |
|---|---|---|
item.created | A new item is added to a board | New issue raised during TIER 1 meeting |
item.status_changed | An item's status column is updated | Action progressed from "Working" to "Done" |
action.created | A new action is created | New CAPA or corrective action assigned |
action.completed | An action is marked as complete | Action closed -- visible in next TIER review |
action.escalated | An action is escalated to a higher tier | TIER 1 action escalated to TIER 2 -- alerts the next-level manager |
comment.created | A new comment is posted on an item | Collaboration update visible to the channel |
kpi.threshold_breached | A KPI crosses its warning/alert threshold | OEE dropped below target -- triggers investigation |
audit.completed | An audit checklist is completed | Gemba walk or 5S audit results posted |
Setting Up an Integration
Slack Setup
- In Slack, navigate to your workspace's App Directory and search for Incoming Webhooks.
- Click Add to Slack and select the target channel (e.g.,
#tier1-brussels). - Copy the generated Webhook URL.
- In ProBeya, navigate to Settings > Integrations.
- Click Create Integration.
- Select Slack as the platform.
- Enter a name (e.g., "TIER 1 Brussels - Escalation Alerts").
- Paste the webhook URL from Slack.
- Select the events to subscribe to.
- Click Save.
Microsoft Teams Setup
- In Teams, navigate to the target channel and click More options (...) > Connectors.
- Search for Incoming Webhook and click Configure.
- Name the connector (e.g., "ProBeya Alerts") and copy the generated URL.
- In ProBeya, navigate to Settings > Integrations.
- Click Create Integration.
- Select Teams as the platform.
- Enter a name and paste the webhook URL from Teams.
- Select the events to subscribe to.
- Click Save.
Notification Message Format
Both platforms receive messages in their native rich format with consistent information:
| Field | Description | Example |
|---|---|---|
| Event type | What happened | "Action Escalated" |
| Entity name | The affected item or action | "Deviation - Line 3 OOS Event" |
| Actor | Who triggered the event | "Marie Dupont" |
| Timestamp | When it happened | "2026-04-13 08:15 CET" |
| Direct link | URL back to the item in ProBeya | https://acme.probeya.com/... |
Slack Block Kit Example
Messages use Slack Block Kit with sections, fields, and context blocks. The formatActionCreated helper generates consistent, scannable notifications with color-coded severity indicators.
Teams Adaptive Card Example
Messages use Adaptive Cards with structured layout, colors, and links. Teams-specific formatting is handled by the formatActionCreated Teams helper, producing cards that render well on desktop, mobile, and tablet.
Enterprise Notification Architecture
Pattern 1: TIER Meeting Escalation Chain
TIER 1 Board → action.escalated → Slack #tier1-brussels
TIER 2 Board → action.escalated → Slack #tier2-brussels + Teams "Site Leadership"
TIER 3 Board → action.escalated → Teams "Executive Team" + Email via Webhook → PagerDuty
Create multiple integrations with different event filters to route notifications through the escalation hierarchy.
Pattern 2: Cross-Site KPI Alerting
Brussels KPIs → kpi.threshold_breached → Teams "Brussels Operations"
Dublin KPIs → kpi.threshold_breached → Teams "Dublin Operations"
Singapore KPIs → kpi.threshold_breached → Slack #apac-operations
↓
All sites → kpi.threshold_breached → Teams "Global OpEx"
Pattern 3: Quality Event Notification
Audit completion → audit.completed → Slack #qa-team
Action creation → action.created → Teams "Quality Managers"
Action overdue → action.escalated → Slack #qa-escalations + PagerDuty via Webhook
Managing Integrations
Once connected, you can:
| Operation | Description | Impact |
|---|---|---|
| Configure | Update name, webhook URL, or event subscriptions | No downtime; changes apply to next event |
| Toggle | Enable or disable without deleting | Disabled integrations retain their configuration |
| Test | Send a synthetic test message | Verifies URL reachability and message format |
| Delete | Permanently remove (hard delete, not recoverable) | All configuration lost |
Integration Lifecycle
| State | Description |
|---|---|
| Active | Integration receives formatted notifications for matching events |
| Disabled | Manually toggled off by admin; no notifications sent |
| Deleted | Permanently removed from the database |
Workspace-Level Routing
Integrations are currently configured at the organization level. Each integration receives events for all boards and projects within the organization. To route notifications to different channels:
- Create multiple integrations with different event filters.
- Use event type granularity to separate escalation alerts from routine notifications.
- Name integrations clearly (e.g., "TIER 1 Brussels - Escalations Only" vs. "All Sites - KPI Alerts").
Security
- All integration records are scoped to the current organization via
organizationIdfiltering. - Webhook URLs are validated as proper URLs before storage.
- Integration CRUD operations require an authenticated user with an active organization context.
Webhook URLs grant the ability to post messages to your Slack or Teams channels. Treat them as secrets:
- Do not share them outside your admin team.
- Do not commit them to source control.
- If a URL is compromised, revoke it in the Slack/Teams admin console and create a new one.
Integration Configuration Reference
| Field | Type | Constraints | Description |
|---|---|---|---|
| type | Enum | slack or teams | Target messaging platform |
| name | String | 1--200 characters | Human-readable label for identification |
| webhookUrl | String | Valid URL | The platform's incoming webhook URL |
| events | String[] | At least one required | Array of subscribed event types |
| isEnabled | Boolean | Default: true | Whether the integration is currently active |
Recovery Procedures
| Scenario | Resolution |
|---|---|
| Slack webhook URL revoked | Create a new Incoming Webhook in Slack, update the URL in ProBeya Settings > Integrations. |
| Teams connector expired | Reconfigure the Incoming Webhook connector in Teams, update the URL in ProBeya. |
| Notifications not arriving | Use the Test button to verify reachability. Check if the integration is enabled. Verify the event types match. |
| Too many notifications overwhelming a channel | Narrow the event subscriptions (e.g., only escalations instead of all actions). Create separate integrations for different channels. |
| Messages showing as plain text in Teams | Verify the connector type is set to teams (not slack). Teams requires Adaptive Card format. |
Best Practices
- Create separate integrations for different notification purposes (escalation vs. routine).
- Use descriptive names that identify the site, TIER level, and purpose.
- Test each integration after creation to verify the webhook URL and message format.
- Review and clean up stale integrations quarterly -- unused integrations waste notification bandwidth.
- Combine integrations with Webhooks for a complete event-driven architecture: integrations for team awareness, webhooks for system automation.
- For GxP compliance, document which events trigger which channel notifications in your system design specification.
Related Features
- Webhooks -- Generic outbound webhooks for machine-to-machine integration.
- Connectors -- Bidirectional data sync with SAP, TrackWise, and other pharma systems.
- API Keys -- Programmatic pull-based access for custom integrations.
- Audit Log -- Integration events are logged for compliance.