Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
eb07a08
v0.5.35: helm updates, copilot improvements, 404 for docs, salesforce…
icecrasher321 Dec 19, 2025
4d1a9a3
v0.5.36: hitl improvements, opengraph, slack fixes, one-click unsubsc…
waleedlatif1 Dec 19, 2025
4431a1a
fix(helm): add custom egress rules to realtime network policy (#2481)
Lutherwaves Dec 20, 2025
3e697d9
v0.5.37: redaction utils consolidation, logs updates, autoconnect imp…
waleedlatif1 Dec 20, 2025
4827866
v0.5.38: snap to grid, copilot ux improvements, billing line items
waleedlatif1 Dec 21, 2025
0f4ec96
v0.5.39: notion, workflow variables fixes
waleedlatif1 Dec 21, 2025
3d9d9cb
v0.5.40: supabase ops to allow non-public schemas, jira uuid
icecrasher321 Dec 22, 2025
e12dd20
v0.5.41: memory fixes, copilot improvements, knowledgebase improvemen…
icecrasher321 Dec 23, 2025
57e4b49
v0.5.42: fix memory migration
icecrasher321 Dec 23, 2025
b304233
v0.5.43: export logs, circleback, grain, vertex, code hygiene, schedu…
waleedlatif1 Dec 24, 2025
b6ba3b5
v0.5.44: keyboard shortcuts, autolayout, light mode, byok, testing im…
waleedlatif1 Dec 27, 2025
dd3209a
v0.5.45: light mode fixes, realtime usage indicator, docker build imp…
waleedlatif1 Dec 28, 2025
93b7531
v1 works
Shubhamxshah Dec 30, 2025
239371f
all fields work
Shubhamxshah Dec 30, 2025
b46a1e6
update item
Shubhamxshah Dec 30, 2025
8767661
tested all endpoints
Shubhamxshah Dec 30, 2025
de29d42
added a sub block note for api token
Shubhamxshah Dec 30, 2025
014fcc4
icon correction
Shubhamxshah Dec 30, 2025
17d7c95
Merge branch 'staging' into feat/monday.com
Shubhamxshah Dec 30, 2025
fdd523c
monday trigger
Shubhamxshah Dec 30, 2025
7af2be2
tested trigger
Shubhamxshah Dec 30, 2025
611b28e
fixed greptile issues
Shubhamxshah Dec 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
tested trigger
  • Loading branch information
Shubhamxshah committed Dec 30, 2025
commit 7af2be2942f03539eae5979c0c8a427dd2431e15
6 changes: 6 additions & 0 deletions apps/sim/lib/webhooks/processor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { isTriggerDevEnabled } from '@/lib/core/config/feature-flags'
import { preprocessExecution } from '@/lib/execution/preprocessing'
import { convertSquareBracketsToTwiML } from '@/lib/webhooks/utils'
import {
handleMondayChallenge,
handleSlackChallenge,
handleWhatsAppVerification,
validateMicrosoftTeamsSignature,
Expand Down Expand Up @@ -108,6 +109,11 @@ export async function handleProviderChallenges(
return slackResponse
}

const mondayResponse = handleMondayChallenge(body)
if (mondayResponse) {
return mondayResponse
}

const url = new URL(request.url)
const mode = url.searchParams.get('hub.mode')
const token = url.searchParams.get('hub.verify_token')
Expand Down
13 changes: 13 additions & 0 deletions apps/sim/lib/webhooks/provider-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,18 @@ function extractAirtableIdentifier(body: any): string | null {
return null
}

function extractMondayIdentifier(body: any): string | null {
// Monday.com sends a triggerUuid for each webhook event
if (body.event?.triggerUuid) {
return body.event.triggerUuid
}
// Fallback to pulseId + triggerTime combination
if (body.event?.pulseId && body.event?.triggerTime) {
return `${body.event.pulseId}:${body.event.triggerTime}`
}
return null
}

const PROVIDER_EXTRACTORS: Record<string, (body: any) => string | null> = {
slack: extractSlackIdentifier,
twilio: extractTwilioIdentifier,
Expand All @@ -73,6 +85,7 @@ const PROVIDER_EXTRACTORS: Record<string, (body: any) => string | null> = {
jira: extractJiraIdentifier,
'microsoft-teams': extractMicrosoftTeamsIdentifier,
airtable: extractAirtableIdentifier,
monday: extractMondayIdentifier,
}

export function extractProviderIdentifierFromBody(provider: string, body: any): string | null {
Expand Down
12 changes: 12 additions & 0 deletions apps/sim/lib/webhooks/utils.server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,18 @@ export function handleSlackChallenge(body: any): NextResponse | null {
return null
}

/**
* Handles Monday.com webhook challenge verification
* Monday.com sends a challenge field that must be echoed back
*/
export function handleMondayChallenge(body: any): NextResponse | null {
if (body?.challenge) {
return NextResponse.json({ challenge: body.challenge })
}

return null
}

/**
* Fetches a URL with DNS pinning to prevent DNS rebinding attacks
* @param url - The URL to fetch
Expand Down
37 changes: 20 additions & 17 deletions apps/sim/triggers/monday/column_changed.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,18 +81,13 @@ export const mondayColumnChangedTrigger: TriggerConfig = {
},
},
{
id: 'pollingInterval',
title: 'Polling Interval',
type: 'dropdown',
options: [
{ label: 'Every 5 minutes', id: '5' },
{ label: 'Every 15 minutes', id: '15' },
{ label: 'Every 30 minutes', id: '30' },
{ label: 'Every hour', id: '60' },
],
defaultValue: '15',
description: 'How often to check for column changes',
required: true,
id: 'webhookUrlDisplay',
title: 'Webhook URL',
type: 'short-input',
readOnly: true,
showCopyButton: true,
useWebhookUrl: true,
placeholder: 'Webhook URL will be generated',
mode: 'trigger',
condition: {
field: 'selectedTriggerId',
Expand All @@ -105,11 +100,11 @@ export const mondayColumnChangedTrigger: TriggerConfig = {
hideFromPreview: true,
type: 'text',
defaultValue: [
'Get your Monday.com API key from Settings > Admin > API',
'Select the board and column you want to monitor',
'Optionally specify a specific value to trigger on',
'The trigger will detect changes at the specified interval',
'Each change will include both old and new values',
'Get your Monday.com API key from Clicking your profile picture > Developers > API Access Tokens.',
'Copy the Webhook URL above',
'Select the board and click on automate on the right',
"search for webhook and paste the copied webhook url",
'The webhook will send real-time notifications when column values change',
]
.map((instruction, index) => `${index + 1}. ${instruction}`)
.join('\n'),
Expand Down Expand Up @@ -164,4 +159,12 @@ export const mondayColumnChangedTrigger: TriggerConfig = {
description: 'Trigger timestamp',
},
},

webhook: {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'User-Agent': 'monday.com',
},
},
}
37 changes: 20 additions & 17 deletions apps/sim/triggers/monday/new_item.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,18 +68,13 @@ export const mondayNewItemTrigger: TriggerConfig = {
},
},
{
id: 'pollingInterval',
title: 'Polling Interval',
type: 'dropdown',
options: [
{ label: 'Every 5 minutes', id: '5' },
{ label: 'Every 15 minutes', id: '15' },
{ label: 'Every 30 minutes', id: '30' },
{ label: 'Every hour', id: '60' },
],
defaultValue: '15',
description: 'How often to check for new items',
required: true,
id: 'webhookUrlDisplay',
title: 'Webhook URL',
type: 'short-input',
readOnly: true,
showCopyButton: true,
useWebhookUrl: true,
placeholder: 'Webhook URL will be generated',
mode: 'trigger',
condition: {
field: 'selectedTriggerId',
Expand All @@ -92,11 +87,11 @@ export const mondayNewItemTrigger: TriggerConfig = {
hideFromPreview: true,
type: 'text',
defaultValue: [
'Get your Monday.com API key from Settings > Admin > API',
'Select the board you want to monitor',
'Optionally filter by a specific group',
'The trigger will check for new items at the specified interval',
'New items will be detected based on their creation time',
'Get your Monday.com API key from Clicking your profile picture > Developers > API Access Tokens.',
'Copy the Webhook URL above',
'Select the board and click on automate on the right',
"search for webhook and paste the copied webhook url",
'The webhook will send real-time notifications when new item is added',
]
.map((instruction, index) => `${index + 1}. ${instruction}`)
.join('\n'),
Expand Down Expand Up @@ -135,4 +130,12 @@ export const mondayNewItemTrigger: TriggerConfig = {
description: 'Trigger timestamp',
},
},

webhook: {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'User-Agent': 'monday.com',
},
},
}