Skip to content

Commit 7a1a460

Browse files
authored
feat(granola): add Granola meeting notes integration (#3790)
* feat(granola): add Granola meeting notes integration * fix(granola): use string comparison for includeTranscript to avoid truthy string bug * fix(granola): add missing get_note output fields to block definition * regen docs
1 parent bf60670 commit 7a1a460

File tree

14 files changed

+656
-0
lines changed

14 files changed

+656
-0
lines changed

apps/docs/components/icons.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5091,6 +5091,17 @@ export function GrainIcon(props: SVGProps<SVGSVGElement>) {
50915091
)
50925092
}
50935093

5094+
export function GranolaIcon(props: SVGProps<SVGSVGElement>) {
5095+
return (
5096+
<svg {...props} viewBox='0 0 1308.2438965 1350' fill='none' xmlns='http://www.w3.org/2000/svg'>
5097+
<path
5098+
fill='#1E1E1E'
5099+
d='M1033.7697754,1021.5519409c-21.5993652,24.2390747-40.1063843,38.9168091-50.3071899,45.9337769 c-4.7957153,3.1881104-7.7962036,7.6500244-11.9937134,11.4755859 c-22.1997681,19.1352539-46.2614746,24.8300781-63.06073,38.2254639 c-22.7993164,17.8594971-107.9772339,39.0952148-132.1790771,46.5419922 c-40.9568481,9.3083496-87.0346069,12.6678467-137.4344482,10.7545166c-10.9053955,0-20.991272-0.0043945-30.2585449-0.7252197 c-3.7649536-0.2927246-7.5383911,0.675293-11.3141479,0.7230225c-0.1495361,0.0021973-0.2905884,0.0021973-0.4226685,0.0021973 c-0.4011841,0-1.0690918-0.2862549-2.0055542-0.8564453c-1.0635376-0.6470947-2.2635498-1.0601807-3.5089722-1.0601807 c-0.3252563,0-0.6525269-0.0292969-0.9745483-0.0726318c-5.079895-0.6959229-7.78125,1.0863037-9.7347412,2.0770264 c-1.4796143,0.7501221-3.0903931,0.12146-4.4910889-0.7674561c-4.4314575-2.8129883-14.3168945-9.1362305-17.6815796-10.1606445 c-3.3172607-1.0081787-3.6425171,0.3685303-5.4051514,0.6785889c-1.1813965,0.2081299-2.4096069-0.2070312-3.2974854-1.0124512 c-0.9940186-0.9008789-2.0576172-2.2006836-4.4989014-3.4992676c-4.4888306-2.3859863-6.8792114,3.0352783-13.5491943-3.0321045 c-0.9690552-0.8812256-1.5383301-2.6135254-2.845459-2.6959229c-0.3275146-0.0206299-0.5649414-0.0401611-0.8869629-0.1030273 c-6.7153931-1.3029785-18.9173584-3.7995605-27.1170044-6.2895508c-9.6000977-2.5517578-6.6083069-4.4597168-10.8088074-6.3730469 c-56.3989868-21.0496826-136.7931519-62.5150146-166.1929932-91.8565674 c-10.7991943-10.8436279-23.3979187-35.7210083-31.1984558-42.1016846 c-6.0003052-5.1036377-18.0027161-15.3076172-21.0029907-20.4100952c-2.3995667-4.46521-0.0043335-12.7537231-4.2025452-18.4946899 c-5.4000549-7.0169678-16.20224-10.8468628-26.4021149-26.7940674 c-11.3994293-17.859436-17.9988098-41.4598999-29.3980103-65.6978149 C201.9965973,854.911499,175.0002289,786.0202026,175,660.3612671c0-84.1989746,38.999939-200.9341125,55.8001099-216.8802185 c10.7962036-10.2072754,9.5955048-32.528595,17.3930664-43.3721619 c89.0116882-123.7463379,244.8043213-214.7861938,430.2043457-224.3546295 c7.5328979-0.3865662,15.072876-0.6276245,22.6151733-0.7156677c45.7410278-0.5339661,91.583374,4.4694061,136.0370483,15.3110352 c44.4141846,10.8320007,86.8728638,27.7349396,128.2607422,46.9507446c0,0,4.9141846,0.3894501,6.2098389,1.025589 c2.1591797,1.0615234,3.0708008,2.9949188,5.2293091,4.0579529c2.1591797,1.0615234,5.2803345,0.1610107,7.638855,0.6438293 c7.774292,1.5916138,9.1699829,6.2081909,10.6022949,8.0475006c1.7391968,2.2333527,3.8304443,3.0867004,7.7841187,4.2215271 c10.3123169,2.9599457,11.6682129,6.3678436,13.0709839,7.9369965c1.119751,1.2547913,1.607605,2.8812866,2.1669922,4.3390503 c0.567688,1.4821777,1.6954956,2.8354187,3.2773438,3.2061462c3.4158325,0.8006287,8.0632935,4.9833679,9.0244751,10.689209 c0.626709,3.7198792,4.6495361,5.3226929,3.550293,12.3006287c-0.3560791,2.2603149,2.0496826,5.6016541-10.5968628,18.0704041 s-39.1845703,20.3282166-55.3406982,14.1350403c-55.8503418-21.4093018-64.1322632-25.5296631-86.5679932-31.6485291 c-40.9569092-11.1700439-75.8527832-18.759491-118.357605-17.9596558 c-67.8004761,1.2758789-121.2071533,7.6550598-185.40625,29.9805298 c-28.1415405,9.9719849-81.2704468,37.1080322-107.9295349,58.2385254 c-26.6590576,21.1304932-65.2558594,50.3164368-81.1852112,77.333252 c-5.5780029,9.4605408-11.855896,18.4968567-25.0551147,33.1670837 c-19.1992798,21.0486755-41.4223938,81.9349976-48.6236267,111.2775879 c-1.8004761,6.378479,2.9920044,13.3964844,0.5931396,19.776062c-2.4002686,7.0158081-13.8008423,10.2126465-15.0008545,15.9525757 c-4.7991028,20.4112549-3.5990906,46.5614014-3.5990906,68.8848267c0,12.1184082,3.6023254,28.7008667,7.8019104,38.2695923 c2.9993286,6.378479,12.6040039,10.8457642,13.8040161,17.2242432c0.5993347,4.4628906-5.393158,9.5643921-5.3984375,13.3910522 c0,3.18927,5.394104,46.5743408,8.3945923,52.9528198c4.2018738,7.6532593,17.4031372,17.21875,21.0031738,26.1479492 c2.3988953,6.378418-4.2071533,12.7611694,0.5928955,19.1396484c2.9995728,3.8277588,12.6074829,3.8223267,16.2075195,8.9248047 c4.7988892,6.3773804,14.9953308,24.8699341,19.7965393,30.6152954c3.6000366,4.46521,10.2007751,6.3861084,13.2003479,8.2993774 c8.997345,6.378479,1.2043762,12.1140747,9.6021729,21.6806641c26.3995667,29.9800415,67.201355,66.9834595,106.2017517,83.5680542 c6.0163574,2.557251,67.7541504,26.1316528,71.3931885,26.1478882 c86.9951172,12.8286133,184.8383179,11.6269531,269.4393921-35.5750732 c19.8032227-10.8468628,131.9692383-88.8079224,150.5701294-181.2953491 c4.199585-18.4979858,9.5991821-63.1557007,7.1991577-81.0162354 c-9.6012573-66.338501-50.4778442-161.756897-125.4051514-197.0944824 c-39.9141846-18.8244629-70.1998291-18.5001221-77.9994507-17.2241821 c-22.7984009,4.4640503-30.5991821-8.9313354-51.5977783-7.019104 c-64.199707,5.1035767-127.1983032,22.9663086-176.3981323,74.6334229 c-45.0004272,47.8394775-54.0087891,109.0753784-31.208313,147.9856567 c2.4000244,5.1025391,1.2000122,11.4831543-3.6000366,14.6723633c-2.0986328,1.2759399-4.0477295,2.8704834-4.9475098,4.5453491 c-1.7897339,3.3290405,3.3853149,5.1079712,6.9530029,6.3568115c24.9576416,8.7318726,33.9572754,50.8421631,66.9963379,49.0578003 h7.197998c0,0,13.8040771-0.0042725,19.2036743-6.3827515c4.4381104-5.2423706,4.4185791-11.3465576,1.2727051-14.0631104 c-1.402771-1.2108765-3.1762085-1.93396-3.5881348-3.7410278c-0.453186-1.9924316-0.6798096-4.6146851-0.6807251-5.7930298 c0-1.2758789,1.8004761-1.9208984,1.8004761-3.1968384c-0.0032349-3.8255615-4.199585-7.0148315-3.6000366-10.840332 c0.3848877-2.0368652,3.2131348-4.854248,5.2076416-6.9572754c1.515625-1.5979004,1.5371704-3.633667,0.5454102-5.6001587 c-0.0357666-0.0704956-0.0715942-0.1419678-0.1064453-0.2146606c-0.9614868-1.973999-1.1403809-4.317688-0.4866943-6.4130859 c0.3761597-1.2044067,0.8314209-2.4910889,0.8325806-3.7767944c0.5995483-5.7399292-1.7919922-8.2928467-2.3924561-12.7558594 c0-1.5761108,8.5443726-5.3193359,11.559082-7.65979c0.8889771-0.6893921,0.9841919-1.8438721,0.6906128-2.9300537 c-0.6234131-2.3154907-1.4516602-3.0331421-1.4516602-7.2695923c0-1.0189209,0.8607788-2.444458,1.8949585-3.7886353 c2.0835571-2.710083,4.000061-5.5979614,4.940918-8.8847656l1.6586914-5.7875977 c0.692688-2.4196167,2.5321655-4.3448486,4.9182129-5.1459351c4.1344604-1.3908081,2.2167358-8.130249,6.1550903-10.0077515 c1.145874-0.5463867,4.0239258,0.1473999,8.6333618-0.8325806c9.5946045-1.913269,2.9984131-5.1036377,4.7956543-10.2050781 c0.8390503-3.1242065,3.4406738-2.8141479,5.9555664-2.5648193c2.0162964,0.2005615,3.9796753-0.4606934,5.4301147-1.8753662 c1.4275513-1.3908081,2.8681641-3.0212402,4.8108521-3.8494263c2.4325562-1.0341187,8.8131714-1.2336426,13.3790283-1.2715454 c1.8786621-0.0162354,3.7443237-0.2851562,5.6099243-0.505127c5.0961304-0.5994873,12.3264771-0.2439575,15.819397-0.7740479 c4.1973267-0.6395874,6.5961914-4.4662476,10.1941528-4.4672852c3.0007324,0,7.2055664,5.102478,10.2051392,5.102478 c2.9995728-0.0021362,5.9989014-2.5517578,8.9984741-2.5517578c1.7995605,0.0010986,2.4000244,3.1859741,5.3984985,3.1870728 h1.1967773c0,0,27.6039429,0.6352539,56.4033203,18.4936523c19.7999878,12.1194458,34.2044678,41.4663086,34.2044678,41.4663086 c13.7987671,23.6005249-1.5100708,47.8635864-1.5100708,69.5507812c0,8.9302368,2.9960938,16.5846558,1.1967773,24.8774414 c-1.2011719,6.3773804-6.0023804,11.4852905-7.8030396,16.5889893c-1.7973022,4.4640503-1.7949829,10.2061157-7.7909546,18.4935913 c-4.8000488,7.0158081-7.2055664,7.0136719-8.4055786,8.2896118c-1.8004761,1.913269-17.3364258,25.4072266-27.5360718,34.338562 c-27,24.2389526-51.9569092,31.3372803-88.5570679,31.9746704c-16.1987915,0.6384277-17.9992676,3.8320923-20.399292,3.8320923 c-8.4012451,0.6373901-46.7924194-1.2727051-58.7957764-3.1860352c0,0-53.3973389-10.2051392-74.4005127-20.4102173 c-11.3996582-5.1035767-86.4050293-60.6016846-103.2052002-91.857666 c-52.200531-98.2316895-40.1960449-202.8430176,13.8040466-273.0081177 c39.0001831-51.0297852,103.1976013-117.3682556,255.5943298-130.1272583 c77.4008179-6.3784485,146.4083862,3.8309326,200.4093628,29.3458252 c76.1978149,35.7210693,131.9972534,98.868103,166.796936,173.498291 C1154.8005371,743.2822266,1151.369751,887.5991211,1033.7697754,1021.5519409z'
5100+
/>
5101+
</svg>
5102+
)
5103+
}
5104+
50945105
export function CirclebackIcon(props: SVGProps<SVGSVGElement>) {
50955106
const id = useId()
50965107
const patternId = `circleback_pattern_${id}`

apps/docs/components/ui/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ import {
7474
GoogleVaultIcon,
7575
GrafanaIcon,
7676
GrainIcon,
77+
GranolaIcon,
7778
GreenhouseIcon,
7879
GreptileIcon,
7980
HexIcon,
@@ -247,6 +248,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
247248
google_vault: GoogleVaultIcon,
248249
grafana: GrafanaIcon,
249250
grain: GrainIcon,
251+
granola: GranolaIcon,
250252
greenhouse: GreenhouseIcon,
251253
greptile: GreptileIcon,
252254
hex: HexIcon,
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
---
2+
title: Granola
3+
description: Access meeting notes and transcripts from Granola
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="granola"
10+
color="#B2C147"
11+
/>
12+
13+
## Usage Instructions
14+
15+
Integrate Granola into your workflow to retrieve meeting notes, summaries, attendees, and transcripts.
16+
17+
18+
19+
## Tools
20+
21+
### `granola_list_notes`
22+
23+
Lists meeting notes from Granola with optional date filters and pagination.
24+
25+
#### Input
26+
27+
| Parameter | Type | Required | Description |
28+
| --------- | ---- | -------- | ----------- |
29+
| `apiKey` | string | Yes | Granola API key |
30+
| `createdBefore` | string | No | Return notes created before this date \(ISO 8601\) |
31+
| `createdAfter` | string | No | Return notes created after this date \(ISO 8601\) |
32+
| `updatedAfter` | string | No | Return notes updated after this date \(ISO 8601\) |
33+
| `cursor` | string | No | Pagination cursor from a previous response |
34+
| `pageSize` | number | No | Number of notes per page \(1-30, default 10\) |
35+
36+
#### Output
37+
38+
| Parameter | Type | Description |
39+
| --------- | ---- | ----------- |
40+
| `notes` | json | List of meeting notes |
41+
|`id` | string | Note ID |
42+
|`title` | string | Note title |
43+
|`ownerName` | string | Note owner name |
44+
|`ownerEmail` | string | Note owner email |
45+
|`createdAt` | string | Creation timestamp |
46+
|`updatedAt` | string | Last update timestamp |
47+
| `hasMore` | boolean | Whether more notes are available |
48+
| `cursor` | string | Pagination cursor for the next page |
49+
50+
### `granola_get_note`
51+
52+
Retrieves a specific meeting note from Granola by ID, including summary, attendees, calendar event details, and optionally the transcript.
53+
54+
#### Input
55+
56+
| Parameter | Type | Required | Description |
57+
| --------- | ---- | -------- | ----------- |
58+
| `apiKey` | string | Yes | Granola API key |
59+
| `noteId` | string | Yes | The note ID \(e.g., not_1d3tmYTlCICgjy\) |
60+
| `includeTranscript` | string | No | Whether to include the meeting transcript |
61+
62+
#### Output
63+
64+
| Parameter | Type | Description |
65+
| --------- | ---- | ----------- |
66+
| `id` | string | Note ID |
67+
| `title` | string | Note title |
68+
| `ownerName` | string | Note owner name |
69+
| `ownerEmail` | string | Note owner email |
70+
| `createdAt` | string | Creation timestamp |
71+
| `updatedAt` | string | Last update timestamp |
72+
| `summaryText` | string | Plain text summary of the meeting |
73+
| `summaryMarkdown` | string | Markdown-formatted summary of the meeting |
74+
| `attendees` | json | Meeting attendees |
75+
|`name` | string | Attendee name |
76+
|`email` | string | Attendee email |
77+
| `folders` | json | Folders the note belongs to |
78+
|`id` | string | Folder ID |
79+
|`name` | string | Folder name |
80+
| `calendarEventTitle` | string | Calendar event title |
81+
| `calendarOrganiser` | string | Calendar event organiser email |
82+
| `calendarEventId` | string | Calendar event ID |
83+
| `scheduledStartTime` | string | Scheduled start time |
84+
| `scheduledEndTime` | string | Scheduled end time |
85+
| `invitees` | json | Calendar event invitee emails |
86+
| `transcript` | json | Meeting transcript entries \(only if requested\) |
87+
|`speaker` | string | Speaker source \(microphone or speaker\) |
88+
|`text` | string | Transcript text |
89+
|`startTime` | string | Segment start time |
90+
|`endTime` | string | Segment end time |
91+
92+

apps/docs/content/docs/en/tools/meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
"google_vault",
6969
"grafana",
7070
"grain",
71+
"granola",
7172
"greenhouse",
7273
"greptile",
7374
"hex",

apps/sim/app/(landing)/integrations/data/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ import {
7474
GoogleVaultIcon,
7575
GrafanaIcon,
7676
GrainIcon,
77+
GranolaIcon,
7778
GreenhouseIcon,
7879
GreptileIcon,
7980
HexIcon,
@@ -247,6 +248,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
247248
google_vault: GoogleVaultIcon,
248249
grafana: GrafanaIcon,
249250
grain: GrainIcon,
251+
granola: GranolaIcon,
250252
greenhouse: GreenhouseIcon,
251253
greptile: GreptileIcon,
252254
hex: HexIcon,

apps/sim/app/(landing)/integrations/data/integrations.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4871,6 +4871,33 @@
48714871
"integrationType": "media",
48724872
"tags": ["meeting", "note-taking"]
48734873
},
4874+
{
4875+
"type": "granola",
4876+
"slug": "granola",
4877+
"name": "Granola",
4878+
"description": "Access meeting notes and transcripts from Granola",
4879+
"longDescription": "Integrate Granola into your workflow to retrieve meeting notes, summaries, attendees, and transcripts.",
4880+
"bgColor": "#B2C147",
4881+
"iconName": "GranolaIcon",
4882+
"docsUrl": "https://docs.sim.ai/tools/granola",
4883+
"operations": [
4884+
{
4885+
"name": "List Notes",
4886+
"description": "Lists meeting notes from Granola with optional date filters and pagination."
4887+
},
4888+
{
4889+
"name": "Get Note",
4890+
"description": "Retrieves a specific meeting note from Granola by ID, including summary, attendees, calendar event details, and optionally the transcript."
4891+
}
4892+
],
4893+
"operationCount": 2,
4894+
"triggers": [],
4895+
"triggerCount": 0,
4896+
"authType": "api-key",
4897+
"category": "tools",
4898+
"integrationType": "productivity",
4899+
"tags": ["meeting", "note-taking"]
4900+
},
48744901
{
48754902
"type": "greenhouse",
48764903
"slug": "greenhouse",

0 commit comments

Comments
 (0)