Skip to content

Commit 1f4c71e

Browse files
committed
added fireflies to formatWebhookInput
1 parent 1334177 commit 1f4c71e

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

apps/sim/blocks/blocks/fireflies.ts

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,21 @@ Return ONLY the timestamp string - no explanations, no quotes, no extra text.`,
223223
field: 'operation',
224224
value: ['fireflies_upload_audio', 'fireflies_add_to_live_meeting'],
225225
},
226+
wandConfig: {
227+
enabled: true,
228+
prompt: `Generate a clear, professional meeting title based on the user's description.
229+
The title should be concise (3-8 words) and descriptive.
230+
231+
Examples:
232+
- "weekly sync with engineering" -> "Weekly Engineering Team Sync"
233+
- "discussing q1 roadmap" -> "Q1 Roadmap Planning Discussion"
234+
- "interview with john for backend role" -> "Backend Engineer Interview - John"
235+
- "customer demo for acme corp" -> "Product Demo - Acme Corp"
236+
237+
Return ONLY the title - no quotes, no explanations.`,
238+
placeholder:
239+
'Describe the meeting (e.g., "weekly team sync", "customer call with Acme")...',
240+
},
226241
},
227242
{
228243
id: 'language',
@@ -234,6 +249,25 @@ Return ONLY the timestamp string - no explanations, no quotes, no extra text.`,
234249
field: 'operation',
235250
value: ['fireflies_upload_audio', 'fireflies_add_to_live_meeting'],
236251
},
252+
wandConfig: {
253+
enabled: true,
254+
prompt: `Convert the language name to its ISO 639-1 two-letter code.
255+
256+
Examples:
257+
- "Spanish" -> es
258+
- "French" -> fr
259+
- "German" -> de
260+
- "Portuguese" -> pt
261+
- "Japanese" -> ja
262+
- "Chinese" -> zh
263+
- "Korean" -> ko
264+
- "Italian" -> it
265+
- "Dutch" -> nl
266+
- "Russian" -> ru
267+
268+
Return ONLY the two-letter language code - no explanations, no quotes.`,
269+
placeholder: 'Enter language name (e.g., "Spanish", "French")...',
270+
},
237271
},
238272
{
239273
id: 'attendees',
@@ -246,6 +280,21 @@ Return ONLY the timestamp string - no explanations, no quotes, no extra text.`,
246280
field: 'operation',
247281
value: 'fireflies_upload_audio',
248282
},
283+
wandConfig: {
284+
enabled: true,
285+
prompt: `Generate a JSON array of attendees based on the user's description.
286+
Each attendee should have "displayName" and "email" fields.
287+
288+
Examples:
289+
- "John Smith at [email protected]" -> [{"displayName": "John Smith", "email": "[email protected]"}]
290+
- "Alice ([email protected]) and Bob ([email protected])" -> [{"displayName": "Alice", "email": "[email protected]"}, {"displayName": "Bob", "email": "[email protected]"}]
291+
- "Sarah Johnson, [email protected]" -> [{"displayName": "Sarah Johnson", "email": "[email protected]"}]
292+
293+
Return ONLY the valid JSON array - no explanations, no markdown code blocks.`,
294+
placeholder:
295+
'Describe attendees (e.g., "John Smith at [email protected] and Jane Doe at [email protected]")...',
296+
generationType: 'json-object',
297+
},
249298
},
250299
{
251300
id: 'clientReferenceId',
@@ -338,6 +387,20 @@ Return ONLY the timestamp string - no explanations, no quotes, no extra text.`,
338387
field: 'operation',
339388
value: 'fireflies_create_bite',
340389
},
390+
wandConfig: {
391+
enabled: true,
392+
prompt: `Write a concise, professional summary for a meeting highlight/soundbite based on the user's description.
393+
The summary should be 1-2 sentences that capture the key point of the highlighted segment.
394+
395+
Guidelines:
396+
- Be clear and concise
397+
- Focus on the main topic or decision discussed
398+
- Use professional language
399+
- Avoid filler words
400+
401+
Return ONLY the summary text - no quotes, no labels.`,
402+
placeholder: 'Describe what this highlight is about...',
403+
},
341404
},
342405
// Trigger SubBlocks
343406
...getTrigger('fireflies_transcription_complete').subBlocks,
@@ -517,6 +580,7 @@ Return ONLY the timestamp string - no explanations, no quotes, no extra text.`,
517580
// Trigger outputs
518581
meetingId: { type: 'string', description: 'Meeting/transcript ID from webhook' },
519582
eventType: { type: 'string', description: 'Webhook event type' },
583+
clientReferenceId: { type: 'string', description: 'Custom reference ID if set during upload' },
520584
},
521585
triggers: {
522586
enabled: true,

apps/sim/lib/webhooks/utils.server.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1522,6 +1522,28 @@ export async function formatWebhookInput(
15221522
}
15231523
}
15241524

1525+
if (foundWebhook.provider === 'fireflies') {
1526+
// Fireflies webhook payload uses camelCase:
1527+
// { meetingId, eventType, clientReferenceId }
1528+
return {
1529+
meetingId: body.meetingId || '',
1530+
eventType: body.eventType || 'Transcription completed',
1531+
clientReferenceId: body.clientReferenceId || '',
1532+
1533+
webhook: {
1534+
data: {
1535+
provider: 'fireflies',
1536+
path: foundWebhook.path,
1537+
providerConfig: foundWebhook.providerConfig,
1538+
payload: body,
1539+
headers: Object.fromEntries(request.headers.entries()),
1540+
method: request.method,
1541+
},
1542+
},
1543+
workflowId: foundWorkflow.id,
1544+
}
1545+
}
1546+
15251547
// Generic format for other providers
15261548
return {
15271549
webhook: {

0 commit comments

Comments
 (0)