diff --git a/apps/docs/content/docs/en/workflows/blocks/webhook.mdx b/apps/docs/content/docs/en/workflows/blocks/webhook.mdx
index 845347e340..374fd03b91 100644
--- a/apps/docs/content/docs/en/workflows/blocks/webhook.mdx
+++ b/apps/docs/content/docs/en/workflows/blocks/webhook.mdx
@@ -1,6 +1,6 @@
---
-title: Webhook
-description: The Webhook block sends an HTTP POST to an external endpoint, with automatic headers and optional signing.
+title: Outgoing Webhook
+description: The Outgoing Webhook block sends an HTTP POST to an external endpoint, with automatic headers and optional signing.
pageType: reference
---
@@ -8,7 +8,7 @@ import { Callout } from 'fumadocs-ui/components/callout'
import { BlockPreview, WorkflowPreview, WEBHOOK_NOTIFY_WORKFLOW, WEBHOOK_TRIGGER_WORKFLOW } from '@/components/workflow-preview'
import { FAQ } from '@/components/ui/faq'
-The Webhook block sends HTTP POST requests to external webhook endpoints with automatic webhook headers and optional HMAC signing.
+The Outgoing Webhook block sends HTTP POST requests to external webhook endpoints with automatic webhook headers and optional HMAC signing.
@@ -77,16 +77,16 @@ Format the result, then POST it to a Slack, Discord, or custom endpoint.
-When the Condition passes, the Webhook starts a process in another system.
+When the Condition passes, the Outgoing Webhook starts a process in another system.
-The Webhook block always uses POST. For other HTTP methods or more control, use the [API block](/workflows/blocks/api).
+The Outgoing Webhook block always uses POST. For other HTTP methods or more control, use the [API block](/workflows/blocks/api).
diff --git a/apps/docs/content/docs/en/workflows/triggers/sim.mdx b/apps/docs/content/docs/en/workflows/triggers/sim.mdx
index 08edb72af8..4f77b80e2f 100644
--- a/apps/docs/content/docs/en/workflows/triggers/sim.mdx
+++ b/apps/docs/content/docs/en/workflows/triggers/sim.mdx
@@ -1,16 +1,16 @@
---
-title: Sim
+title: Sim Workspace Events
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { FAQ } from '@/components/ui/faq'
-The Sim trigger runs a workflow when events happen in your workspace: another workflow's run fails or succeeds, a workflow is deployed, or an alert condition like a latency spike or cost threshold is met. Use it to build side-effect workflows — alerting, escalation, auto-remediation — composed from any blocks (Slack, email, webhooks, custom logic).
+The Sim Workspace Events trigger runs a workflow when events happen in your workspace: another workflow's run fails or succeeds, a workflow is deployed, or an alert condition like a latency spike or cost threshold is met. Use it to build side-effect workflows — alerting, escalation, auto-remediation — composed from any blocks (Slack, email, webhooks, custom logic).
## Events
-Pick one event per Sim trigger block:
+Pick one event per Sim Workspace Events trigger block:
**Plain events** — fire on every occurrence:
@@ -68,8 +68,8 @@ All events include `event`, `timestamp`, `workflowId`, and `workflowName` (the s
## Behavior
- - The workflow containing the Sim trigger must be deployed for events to fire.
- - Runs started by a Sim trigger never emit workspace events, so side-effect workflows cannot chain or loop.
+ - The workflow containing the Sim Workspace Events trigger must be deployed for events to fire.
+ - Runs started by a Sim Workspace Events trigger never emit workspace events, so side-effect workflows cannot chain or loop.
- Alert conditions fire at most once per cooldown window (one hour, or the inactivity window for No Activity).
- Event delivery is fire-and-forget: side-effect runs are billed like any other run and are subject to workspace rate limits.
@@ -80,8 +80,8 @@ All events include `event`, `timestamp`, `workflowId`, and `workflowName` (the s
diff --git a/apps/sim/blocks/blocks/sim_workspace_event.ts b/apps/sim/blocks/blocks/sim_workspace_event.ts
index ea94088dee..0a86aa777f 100644
--- a/apps/sim/blocks/blocks/sim_workspace_event.ts
+++ b/apps/sim/blocks/blocks/sim_workspace_event.ts
@@ -8,7 +8,7 @@ export const SimWorkspaceEventBlock: BlockConfig = {
// can scrape the type for icon-map keys; a test asserts it stays equal to
// the constant.
type: 'sim_workspace_event',
- name: 'Sim',
+ name: 'Sim Workspace Events',
description:
'Run this workflow when workspace events occur: run errors or successes, deployments, and alert conditions like latency or cost spikes.',
category: 'triggers',
diff --git a/apps/sim/blocks/blocks/webhook_request.ts b/apps/sim/blocks/blocks/webhook_request.ts
index 6fad339599..b34e78413d 100644
--- a/apps/sim/blocks/blocks/webhook_request.ts
+++ b/apps/sim/blocks/blocks/webhook_request.ts
@@ -4,7 +4,7 @@ import type { RequestResponse } from '@/tools/http/types'
export const WebhookRequestBlock: BlockConfig = {
type: 'webhook_request',
- name: 'Webhook',
+ name: 'Outgoing Webhook',
description: 'Send a webhook request',
longDescription:
'Send an HTTP POST request to a webhook URL with automatic webhook headers. Optionally sign the payload with HMAC-SHA256 for secure webhook delivery.',
diff --git a/apps/sim/ee/access-control/components/access-control.tsx b/apps/sim/ee/access-control/components/access-control.tsx
index da5b8b55e2..0bf7de4dc4 100644
--- a/apps/sim/ee/access-control/components/access-control.tsx
+++ b/apps/sim/ee/access-control/components/access-control.tsx
@@ -1170,6 +1170,28 @@ export function AccessControl() {
)
}
+ const deleteConfirmModal = (
+ setDeletingGroup(null)}
+ srTitle='Delete Permission Group'
+ title='Delete Permission Group'
+ text={[
+ 'Are you sure you want to delete ',
+ { text: deletingGroup?.name ?? 'this group', bold: true },
+ '? ',
+ { text: 'All members will be removed from this group.', error: true },
+ ' This action cannot be undone.',
+ ]}
+ confirm={{
+ label: 'Delete',
+ onClick: confirmDelete,
+ pending: deletePermissionGroup.isPending,
+ pendingLabel: 'Deleting...',
+ }}
+ />
+ )
+
if (viewingGroup) {
return (
<>
@@ -1479,7 +1501,7 @@ export function AccessControl() {
{filteredToolBlocks.length > 0 && (
- Tools
+ Integrations and Triggers
{filteredToolBlocks.map((block) => {
@@ -1638,6 +1660,8 @@ export function AccessControl() {
isAdding={bulkAddMembers.isPending}
errorMessage={addMembersError}
/>
+
+ {deleteConfirmModal}
>
)
}
@@ -1784,25 +1808,7 @@ export function AccessControl() {
/>
- setDeletingGroup(null)}
- srTitle='Delete Permission Group'
- title='Delete Permission Group'
- text={[
- 'Are you sure you want to delete ',
- { text: deletingGroup?.name ?? 'this group', bold: true },
- '? ',
- { text: 'All members will be removed from this group.', error: true },
- ' This action cannot be undone.',
- ]}
- confirm={{
- label: 'Delete',
- onClick: confirmDelete,
- pending: deletePermissionGroup.isPending,
- pendingLabel: 'Deleting...',
- }}
- />
+ {deleteConfirmModal}
>
)
}
diff --git a/apps/sim/triggers/sim/workspace-event.test.ts b/apps/sim/triggers/sim/workspace-event.test.ts
index e338fb4cab..9ddabb70d6 100644
--- a/apps/sim/triggers/sim/workspace-event.test.ts
+++ b/apps/sim/triggers/sim/workspace-event.test.ts
@@ -34,9 +34,9 @@ describe('sim workspace event trigger registration', () => {
})
})
- it('is named Sim', () => {
- expect(SimWorkspaceEventBlock.name).toBe('Sim')
- expect(simWorkspaceEventTrigger.name).toBe('Sim')
+ it('is named Sim Workspace Events', () => {
+ expect(SimWorkspaceEventBlock.name).toBe('Sim Workspace Events')
+ expect(simWorkspaceEventTrigger.name).toBe('Sim Workspace Events')
})
})
diff --git a/apps/sim/triggers/sim/workspace-event.ts b/apps/sim/triggers/sim/workspace-event.ts
index 5d455b709d..27028aa2da 100644
--- a/apps/sim/triggers/sim/workspace-event.ts
+++ b/apps/sim/triggers/sim/workspace-event.ts
@@ -10,7 +10,7 @@ import type { TriggerConfig } from '@/triggers/types'
export const simWorkspaceEventTrigger: TriggerConfig = {
id: SIM_WORKSPACE_EVENT_TRIGGER_ID,
- name: 'Sim',
+ name: 'Sim Workspace Events',
provider: SIM_TRIGGER_PROVIDER,
description:
'Triggers when workspace events occur: run errors or successes, deployments, and alert conditions like latency or cost spikes',