@scopieflows/app-avoma 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +7 -0
  2. package/package.json +28 -0
  3. package/src/i18n/de.json +67 -0
  4. package/src/i18n/es.json +67 -0
  5. package/src/i18n/fr.json +67 -0
  6. package/src/i18n/ja.json +67 -0
  7. package/src/i18n/nl.json +67 -0
  8. package/src/i18n/pt.json +67 -0
  9. package/src/i18n/translation.json +67 -0
  10. package/src/i18n/zh.json +67 -0
  11. package/src/index.d.ts +1 -0
  12. package/src/index.js +23 -0
  13. package/src/index.js.map +1 -0
  14. package/src/lib/actions/create-call.d.ts +17 -0
  15. package/src/lib/actions/create-call.js +230 -0
  16. package/src/lib/actions/create-call.js.map +1 -0
  17. package/src/lib/actions/get-meeting-recording.d.ts +3 -0
  18. package/src/lib/actions/get-meeting-recording.js +80 -0
  19. package/src/lib/actions/get-meeting-recording.js.map +1 -0
  20. package/src/lib/actions/get-meeting-transcription.d.ts +3 -0
  21. package/src/lib/actions/get-meeting-transcription.js +61 -0
  22. package/src/lib/actions/get-meeting-transcription.js.map +1 -0
  23. package/src/lib/actions/index.d.ts +3 -0
  24. package/src/lib/actions/index.js +10 -0
  25. package/src/lib/actions/index.js.map +1 -0
  26. package/src/lib/common/index.d.ts +7 -0
  27. package/src/lib/common/index.js +150 -0
  28. package/src/lib/common/index.js.map +1 -0
  29. package/src/lib/triggers/index.d.ts +4 -0
  30. package/src/lib/triggers/index.js +12 -0
  31. package/src/lib/triggers/index.js.map +1 -0
  32. package/src/lib/triggers/meeting-cancelled.d.ts +10 -0
  33. package/src/lib/triggers/meeting-cancelled.js +75 -0
  34. package/src/lib/triggers/meeting-cancelled.js.map +1 -0
  35. package/src/lib/triggers/meeting-rescheduled.d.ts +10 -0
  36. package/src/lib/triggers/meeting-rescheduled.js +75 -0
  37. package/src/lib/triggers/meeting-rescheduled.js.map +1 -0
  38. package/src/lib/triggers/new-meeting-scheduled.d.ts +10 -0
  39. package/src/lib/triggers/new-meeting-scheduled.js +75 -0
  40. package/src/lib/triggers/new-meeting-scheduled.js.map +1 -0
  41. package/src/lib/triggers/new-note.d.ts +10 -0
  42. package/src/lib/triggers/new-note.js +100 -0
  43. package/src/lib/triggers/new-note.js.map +1 -0
@@ -0,0 +1,67 @@
1
+ {
2
+ "Avoma is an AI Meeting Assistant that automatically records, transcribes, and summarizes your meetings.": "Avoma is an AI Meeting Assistant that automatically records, transcribes, and summarizes your meetings.",
3
+ "Your Avoma API Key (Bearer token). Generate it from your Avoma API Integration settings: https://help.avoma.com/api-integration-for-avoma": "Your Avoma API Key (Bearer token). Generate it from your Avoma API Integration settings: https://help.avoma.com/api-integration-for-avoma",
4
+ "Create Call": "Create Call",
5
+ "Get Meeting Recording": "Get Meeting Recording",
6
+ "Get Meeting Transcription": "Get Meeting Transcription",
7
+ "Creates a new call in Avoma": "Creates a new call in Avoma",
8
+ "Returns video and audio recording URLs for a given meeting": "Returns video and audio recording URLs for a given meeting",
9
+ "Returns transcription with speakers, timestamps, and VTT file URL": "Returns transcription with speakers, timestamps, and VTT file URL",
10
+ "External ID": "外部ID",
11
+ "User Email": "User Email",
12
+ "Source": "来源",
13
+ "Direction": "Direction",
14
+ "Start Time": "开始时间",
15
+ "From Phone Number": "From Phone Number",
16
+ "To Phone Number": "To Phone Number",
17
+ "Recording URL": "Recording URL",
18
+ "Participants": "Participants",
19
+ "End Time": "End Time",
20
+ "From Name": "From Name",
21
+ "To Name": "To Name",
22
+ "Answered": "Answered",
23
+ "Is Voicemail": "Is Voicemail",
24
+ "Additional Details": "Additional Details",
25
+ "Meeting": "Meeting",
26
+ "Transcription": "Transcription",
27
+ "Unique id of the call from the dialer system like hubspot, twilio, zoom, etc.": "Unique id of the call from the dialer system like hubspot, twilio, zoom, etc.",
28
+ "Email of the user who made or received the call. This should be an Avoma user's email.": "Email of the user who made or received the call. This should be an Avoma user's email.",
29
+ "Source of the call": "Source of the call",
30
+ "Direction of the call": "Direction of the call",
31
+ "Start time of the call": "Start time of the call",
32
+ "Phone number from which call was made (e.g., +11234567890)": "Phone number from which call was made (e.g., +11234567890)",
33
+ "Phone number to which call was made (e.g., +12234567890)": "Phone number to which call was made (e.g., +12234567890)",
34
+ "URL of the recording of the call. This should be a public URL that Avoma can access.": "URL of the recording of the call. This should be a public URL that Avoma can access.",
35
+ "List of participants in the call. First entry should be the prospect/lead.": "List of participants in the call. First entry should be the prospect/lead.",
36
+ "End time of the call": "End time of the call",
37
+ "Name of the caller who made the call": "Name of the caller who made the call",
38
+ "Name of the person to whom call was made": "Name of the person to whom call was made",
39
+ "Whether the call was answered": "Whether the call was answered",
40
+ "Indicates if the call is a voicemail": "Indicates if the call is a voicemail",
41
+ "Additional details of the call (JSON object as string)": "Additional details of the call (JSON object as string)",
42
+ "Select a meeting from your Avoma account": "Select a meeting from your Avoma account",
43
+ "Select a transcription from your Avoma meetings": "Select a transcription from your Avoma meetings",
44
+ "Zoom": "Zoom",
45
+ "Zoom Phone": "Zoom Phone",
46
+ "Twilio": "Twilio",
47
+ "PhoneBurner": "PhoneBurner",
48
+ "RingCentral": "RingCentral",
49
+ "Aircall": "Aircall",
50
+ "HubSpot": "HubSpot",
51
+ "Other": "Other",
52
+ "Inbound": "Inbound",
53
+ "Outbound": "Outbound",
54
+ "New Note": "New Note",
55
+ "New Meeting Scheduled": "New Meeting Scheduled",
56
+ "Meeting Rescheduled": "Meeting Rescheduled",
57
+ "Meeting Cancelled": "Meeting Cancelled",
58
+ "Triggers when notes are successfully generated for meetings or calls": "Triggers when notes are successfully generated for meetings or calls",
59
+ "Triggers when a meeting is booked via one of your Avoma scheduling pages": "Triggers when a meeting is booked via one of your Avoma scheduling pages",
60
+ "Triggers when a scheduled meeting is rescheduled": "Triggers when a scheduled meeting is rescheduled",
61
+ "Triggers when a meeting booked via the scheduling page is cancelled": "Triggers when a meeting booked via the scheduling page is cancelled",
62
+ "Markdown": "Markdown",
63
+ "\n**Quick Setup:**\n\n1. In Avoma: **Settings > Integrations > Webhooks**\n2. **Webhook URL:** `{{webhookUrl}}`\n3. **Event Type:** Select **\"AINOTE\"**\n4. **HTTP Method:** POST\n5. **Content Type:** application/json\n\n**Note:** Requires admin permissions in Avoma.\n ": "\n**Quick Setup:**\n\n1. In Avoma: **Settings > Integrations > Webhooks**\n2. **Webhook URL:** `{{webhookUrl}}`\n3. **Event Type:** Select **\"AINOTE\"**\n4. **HTTP Method:** POST\n5. **Content Type:** application/json\n\n**Note:** Requires admin permissions in Avoma.\n ",
64
+ "\n**Quick Setup:**\n\n1. In Avoma: **Settings > Integrations > Webhooks**\n2. **Webhook URL:** `{{webhookUrl}}`\n3. **Event Type:** Select **\"MEETING_BOOKED_VIA_SCHEDULER\"**\n4. **HTTP Method:** POST\n5. **Content Type:** application/json\n\n**Note:** Requires admin permissions in Avoma.\n ": "\n**Quick Setup:**\n\n1. In Avoma: **Settings > Integrations > Webhooks**\n2. **Webhook URL:** `{{webhookUrl}}`\n3. **Event Type:** Select **\"MEETING_BOOKED_VIA_SCHEDULER\"**\n4. **HTTP Method:** POST\n5. **Content Type:** application/json\n\n**Note:** Requires admin permissions in Avoma.\n ",
65
+ "\n**Quick Setup:**\n\n1. In Avoma: **Settings > Integrations > Webhooks**\n2. **Webhook URL:** `{{webhookUrl}}`\n3. **Event Type:** Select **\"MEETING_BOOKED_VIA_SCHEDULER_RESCHEDULED\"**\n4. **HTTP Method:** POST\n5. **Content Type:** application/json\n\n**Note:** Requires admin permissions in Avoma.\n ": "\n**Quick Setup:**\n\n1. In Avoma: **Settings > Integrations > Webhooks**\n2. **Webhook URL:** `{{webhookUrl}}`\n3. **Event Type:** Select **\"MEETING_BOOKED_VIA_SCHEDULER_RESCHEDULED\"**\n4. **HTTP Method:** POST\n5. **Content Type:** application/json\n\n**Note:** Requires admin permissions in Avoma.\n ",
66
+ "\n**Quick Setup:**\n\n1. In Avoma: **Settings > Integrations > Webhooks**\n2. **Webhook URL:** `{{webhookUrl}}`\n3. **Event Type:** Select **\"MEETING_BOOKED_VIA_SCHEDULER_CANCELED\"**\n4. **HTTP Method:** POST\n5. **Content Type:** application/json\n\n**Note:** Requires admin permissions in Avoma.\n ": "\n**Quick Setup:**\n\n1. In Avoma: **Settings > Integrations > Webhooks**\n2. **Webhook URL:** `{{webhookUrl}}`\n3. **Event Type:** Select **\"MEETING_BOOKED_VIA_SCHEDULER_CANCELED\"**\n4. **HTTP Method:** POST\n5. **Content Type:** application/json\n\n**Note:** Requires admin permissions in Avoma.\n "
67
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const avoma: import("@scopieflows/pieces-framework").Piece<import("@scopieflows/pieces-framework").SecretTextProperty<true>>;
package/src/index.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.avoma = void 0;
4
+ const pieces_framework_1 = require("@scopieflows/pieces-framework");
5
+ const new_note_1 = require("./lib/triggers/new-note");
6
+ const create_call_1 = require("./lib/actions/create-call");
7
+ const get_meeting_transcription_1 = require("./lib/actions/get-meeting-transcription");
8
+ const get_meeting_recording_1 = require("./lib/actions/get-meeting-recording");
9
+ const new_meeting_scheduled_1 = require("./lib/triggers/new-meeting-scheduled");
10
+ const meeting_rescheduled_1 = require("./lib/triggers/meeting-rescheduled");
11
+ const meeting_cancelled_1 = require("./lib/triggers/meeting-cancelled");
12
+ const common_1 = require("./lib/common");
13
+ exports.avoma = (0, pieces_framework_1.createPiece)({
14
+ displayName: 'Avoma',
15
+ description: 'Avoma is an AI Meeting Assistant that automatically records, transcribes, and summarizes your meetings.',
16
+ auth: common_1.avomaCommon.avomaAuth,
17
+ minimumSupportedRelease: '0.36.1',
18
+ logoUrl: '/pieces/avoma.png',
19
+ authors: ["fortunamide", "onyedikachi-david"],
20
+ actions: [create_call_1.createCall, get_meeting_recording_1.getMeetingRecording, get_meeting_transcription_1.getMeetingTranscription],
21
+ triggers: [new_note_1.newNote, new_meeting_scheduled_1.newMeetingScheduled, meeting_rescheduled_1.meetingRescheduled, meeting_cancelled_1.meetingCancelled]
22
+ });
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/avoma/src/index.ts"],"names":[],"mappings":";;;AACA,oEAA4D;AAC5D,sDAAkD;AAClD,2DAAuD;AACvD,uFAAkF;AAClF,+EAA0E;AAC1E,gFAA2E;AAC3E,4EAAwE;AACxE,wEAAoE;AACpE,yCAA2C;AAE1B,QAAA,KAAK,GAAG,IAAA,8BAAW,EAAC;IAC/B,WAAW,EAAE,OAAO;IACpB,WAAW,EACT,yGAAyG;IAC3G,IAAI,EAAE,oBAAW,CAAC,SAAS;IAC3B,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC7C,OAAO,EAAE,CAAC,wBAAU,EAAE,2CAAmB,EAAE,mDAAuB,CAAC;IACnE,QAAQ,EAAE,CAAC,kBAAO,EAAE,2CAAmB,EAAE,wCAAkB,EAAE,oCAAgB,CAAC;CAC/E,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare const createCall: import("@scopieflows/pieces-framework").IAction<import("@scopieflows/pieces-framework").SecretTextProperty<true>, {
2
+ external_id: import("@scopieflows/pieces-framework").ShortTextProperty<true>;
3
+ user_email: import("@scopieflows/pieces-framework").ShortTextProperty<true>;
4
+ source: import("@scopieflows/pieces-framework").StaticDropdownProperty<string, true>;
5
+ direction: import("@scopieflows/pieces-framework").StaticDropdownProperty<string, true>;
6
+ start_at: import("@scopieflows/pieces-framework").DateTimeProperty<true>;
7
+ frm: import("@scopieflows/pieces-framework").ShortTextProperty<true>;
8
+ to: import("@scopieflows/pieces-framework").ShortTextProperty<true>;
9
+ recording_url: import("@scopieflows/pieces-framework").LongTextProperty<true>;
10
+ participants: import("@scopieflows/pieces-framework").ArrayProperty<true> | import("@scopieflows/pieces-framework").ArrayProperty<false>;
11
+ end_at: import("@scopieflows/pieces-framework").DateTimeProperty<false>;
12
+ frm_name: import("@scopieflows/pieces-framework").ShortTextProperty<false>;
13
+ to_name: import("@scopieflows/pieces-framework").ShortTextProperty<false>;
14
+ answered: import("@scopieflows/pieces-framework").CheckboxProperty<false>;
15
+ is_voicemail: import("@scopieflows/pieces-framework").CheckboxProperty<false>;
16
+ additional_details: import("@scopieflows/pieces-framework").LongTextProperty<false>;
17
+ }>;
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCall = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@scopieflows/pieces-framework");
6
+ const pieces_common_1 = require("@scopieflows/pieces-common");
7
+ const common_1 = require("../common");
8
+ exports.createCall = (0, pieces_framework_1.createAction)({
9
+ auth: common_1.avomaCommon.avomaAuth,
10
+ name: 'create_call',
11
+ displayName: 'Create Call',
12
+ description: 'Creates a new call in Avoma',
13
+ props: {
14
+ external_id: pieces_framework_1.Property.ShortText({
15
+ displayName: 'External ID',
16
+ description: 'Unique id of the call from the dialer system like hubspot, twilio, zoom, etc.',
17
+ required: true
18
+ }),
19
+ user_email: pieces_framework_1.Property.ShortText({
20
+ displayName: 'User Email',
21
+ description: 'Email of the user who made or received the call. This should be an Avoma user\'s email.',
22
+ required: true
23
+ }),
24
+ source: pieces_framework_1.Property.StaticDropdown({
25
+ displayName: 'Source',
26
+ description: 'Source of the call',
27
+ required: true,
28
+ options: {
29
+ options: [
30
+ { label: 'Zoom', value: 'zoom' },
31
+ { label: 'Zoom Phone', value: 'zoomphone' },
32
+ { label: 'Twilio', value: 'twilio' },
33
+ { label: 'PhoneBurner', value: 'phoneburner' },
34
+ { label: 'RingCentral', value: 'ringcentral' },
35
+ { label: 'Aircall', value: 'aircall' },
36
+ { label: 'HubSpot', value: 'hubspot' },
37
+ { label: 'Other', value: 'other' }
38
+ ]
39
+ }
40
+ }),
41
+ direction: pieces_framework_1.Property.StaticDropdown({
42
+ displayName: 'Direction',
43
+ description: 'Direction of the call',
44
+ required: true,
45
+ options: {
46
+ options: [
47
+ { label: 'Inbound', value: 'Inbound' },
48
+ { label: 'Outbound', value: 'Outbound' }
49
+ ]
50
+ }
51
+ }),
52
+ start_at: pieces_framework_1.Property.DateTime({
53
+ displayName: 'Start Time',
54
+ description: 'Start time of the call',
55
+ required: true
56
+ }),
57
+ frm: pieces_framework_1.Property.ShortText({
58
+ displayName: 'From Phone Number',
59
+ description: 'Phone number from which call was made (e.g., +11234567890)',
60
+ required: true
61
+ }),
62
+ to: pieces_framework_1.Property.ShortText({
63
+ displayName: 'To Phone Number',
64
+ description: 'Phone number to which call was made (e.g., +12234567890)',
65
+ required: true
66
+ }),
67
+ recording_url: pieces_framework_1.Property.LongText({
68
+ displayName: 'Recording URL',
69
+ description: 'URL of the recording of the call. This should be a public URL that Avoma can access.',
70
+ required: true
71
+ }),
72
+ participants: pieces_framework_1.Property.Array({
73
+ displayName: 'Participants',
74
+ description: 'List of participants in the call. First entry should be the prospect/lead.',
75
+ required: true,
76
+ properties: {
77
+ name: pieces_framework_1.Property.ShortText({
78
+ displayName: 'Name',
79
+ description: 'Name of the participant',
80
+ required: true
81
+ }),
82
+ email: pieces_framework_1.Property.ShortText({
83
+ displayName: 'Email',
84
+ description: 'Email of the participant',
85
+ required: true
86
+ }),
87
+ crm_id: pieces_framework_1.Property.ShortText({
88
+ displayName: 'CRM Record ID',
89
+ description: 'CRM record ID for this participant (optional)',
90
+ required: false
91
+ }),
92
+ crm_type: pieces_framework_1.Property.ShortText({
93
+ displayName: 'CRM Record Type',
94
+ description: 'Type of CRM record (e.g., contact, lead, opportunity)',
95
+ required: false
96
+ }),
97
+ crm_system: pieces_framework_1.Property.ShortText({
98
+ displayName: 'CRM System',
99
+ description: 'CRM system name (e.g., hubspot, salesforce)',
100
+ required: false
101
+ })
102
+ }
103
+ }),
104
+ end_at: pieces_framework_1.Property.DateTime({
105
+ displayName: 'End Time',
106
+ description: 'End time of the call',
107
+ required: false
108
+ }),
109
+ frm_name: pieces_framework_1.Property.ShortText({
110
+ displayName: 'From Name',
111
+ description: 'Name of the caller who made the call',
112
+ required: false
113
+ }),
114
+ to_name: pieces_framework_1.Property.ShortText({
115
+ displayName: 'To Name',
116
+ description: 'Name of the person to whom call was made',
117
+ required: false
118
+ }),
119
+ answered: pieces_framework_1.Property.Checkbox({
120
+ displayName: 'Answered',
121
+ description: 'Whether the call was answered',
122
+ required: false
123
+ }),
124
+ is_voicemail: pieces_framework_1.Property.Checkbox({
125
+ displayName: 'Is Voicemail',
126
+ description: 'Indicates if the call is a voicemail',
127
+ required: false,
128
+ defaultValue: false
129
+ }),
130
+ additional_details: pieces_framework_1.Property.LongText({
131
+ displayName: 'Additional Details',
132
+ description: 'Additional details of the call (JSON object as string)',
133
+ required: false
134
+ })
135
+ },
136
+ run(context) {
137
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
138
+ var _a;
139
+ const { auth, propsValue } = context;
140
+ const participants = ((_a = propsValue.participants) === null || _a === void 0 ? void 0 : _a.map((participant) => {
141
+ const participantData = {
142
+ email: participant.email,
143
+ name: participant.name
144
+ };
145
+ if (participant.crm_id && participant.crm_type && participant.crm_system) {
146
+ participantData.associations = [{
147
+ id: participant.crm_id,
148
+ type: participant.crm_type,
149
+ system: participant.crm_system
150
+ }];
151
+ }
152
+ return participantData;
153
+ })) || [];
154
+ const requestBody = {
155
+ external_id: propsValue.external_id,
156
+ user_email: propsValue.user_email,
157
+ source: propsValue.source,
158
+ direction: propsValue.direction,
159
+ start_at: propsValue.start_at,
160
+ frm: propsValue.frm,
161
+ to: propsValue.to,
162
+ recording_url: propsValue.recording_url,
163
+ participants: participants
164
+ };
165
+ if (propsValue.end_at) {
166
+ requestBody.end_at = propsValue.end_at;
167
+ }
168
+ if (propsValue.frm_name) {
169
+ requestBody.frm_name = propsValue.frm_name;
170
+ }
171
+ if (propsValue.to_name) {
172
+ requestBody.to_name = propsValue.to_name;
173
+ }
174
+ if (propsValue.answered !== undefined) {
175
+ requestBody.answered = propsValue.answered;
176
+ }
177
+ if (propsValue.is_voicemail !== undefined) {
178
+ requestBody.is_voicemail = propsValue.is_voicemail;
179
+ }
180
+ if (propsValue.additional_details) {
181
+ try {
182
+ requestBody.additional_details = JSON.parse(propsValue.additional_details);
183
+ }
184
+ catch (e) {
185
+ requestBody.additional_details = propsValue.additional_details;
186
+ }
187
+ }
188
+ try {
189
+ const response = yield pieces_common_1.httpClient.sendRequest({
190
+ method: pieces_common_1.HttpMethod.POST,
191
+ url: 'https://api.avoma.com/v1/calls/',
192
+ headers: {
193
+ 'Authorization': `Bearer ${auth.secret_text}`,
194
+ 'Content-Type': 'application/json'
195
+ },
196
+ body: requestBody
197
+ });
198
+ if (response.status === 400) {
199
+ const errorDetails = response.body;
200
+ let errorMessage = 'Bad request: ';
201
+ if (typeof errorDetails === 'object') {
202
+ const fieldErrors = Object.entries(errorDetails)
203
+ .map(([field, errors]) => `${field}: ${Array.isArray(errors) ? errors.join(', ') : errors}`)
204
+ .join('; ');
205
+ errorMessage += fieldErrors;
206
+ }
207
+ else {
208
+ errorMessage += JSON.stringify(errorDetails) || 'Invalid input data';
209
+ }
210
+ if (errorMessage.includes('external_id') && errorMessage.includes('source')) {
211
+ errorMessage += '. This may be due to a duplicate call (same external_id and source already exists)';
212
+ }
213
+ else if (errorMessage.includes('user_email')) {
214
+ errorMessage += '. Check that the user exists, is active, belongs to your organization, and has dialer permissions';
215
+ }
216
+ throw new Error(errorMessage);
217
+ }
218
+ if (response.status >= 400) {
219
+ throw new Error(`API error (${response.status}): ${JSON.stringify(response.body) || 'Unknown error'}`);
220
+ }
221
+ return response.body;
222
+ }
223
+ catch (error) {
224
+ const errorMessage = error instanceof Error ? error.message : String(error);
225
+ throw new Error(`Failed to create call: ${errorMessage}`);
226
+ }
227
+ });
228
+ }
229
+ });
230
+ //# sourceMappingURL=create-call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-call.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/avoma/src/lib/actions/create-call.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const getMeetingRecording: import("@scopieflows/pieces-framework").IAction<import("@scopieflows/pieces-framework").SecretTextProperty<true>, {
2
+ meeting_uuid: import("@scopieflows/pieces-framework").DropdownProperty<any, true, import("@scopieflows/pieces-framework").SecretTextProperty<true>>;
3
+ }>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMeetingRecording = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@scopieflows/pieces-framework");
6
+ const pieces_common_1 = require("@scopieflows/pieces-common");
7
+ const common_1 = require("../common");
8
+ exports.getMeetingRecording = (0, pieces_framework_1.createAction)({
9
+ auth: common_1.avomaCommon.avomaAuth,
10
+ name: 'get_meeting_recording',
11
+ displayName: 'Get Meeting Recording',
12
+ description: 'Returns video and audio recording URLs for a given meeting',
13
+ props: {
14
+ meeting_uuid: common_1.avomaCommon.meetingDropdown
15
+ },
16
+ run(context) {
17
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
18
+ const { auth, propsValue } = context;
19
+ const meetingUuid = propsValue.meeting_uuid;
20
+ if (!meetingUuid) {
21
+ throw new Error('Please select a meeting from the dropdown');
22
+ }
23
+ try {
24
+ const response = yield pieces_common_1.httpClient.sendRequest({
25
+ method: pieces_common_1.HttpMethod.GET,
26
+ url: `https://api.avoma.com/v1/recordings/?meeting_uuid=${meetingUuid}`,
27
+ headers: {
28
+ 'Authorization': `Bearer ${auth.secret_text}`,
29
+ 'Content-Type': 'application/json'
30
+ }
31
+ });
32
+ if (response.status === 200) {
33
+ return {
34
+ success: true,
35
+ status: 'available',
36
+ meeting_uuid: response.body.meeting_uuid,
37
+ recording_uuid: response.body.uuid,
38
+ audio_url: response.body.audio_url,
39
+ video_url: response.body.video_url,
40
+ valid_till: response.body.valid_till,
41
+ urls_expire_in_days: 5
42
+ };
43
+ }
44
+ else if (response.status === 202) {
45
+ return {
46
+ success: true,
47
+ status: 'processing',
48
+ meeting_uuid: response.body.meeting_uuid,
49
+ recording_uuid: response.body.uuid,
50
+ message: response.body.message || 'Recording is being processed and not yet available',
51
+ note: 'Check audio_ready and video_ready parameters in the meeting details to verify recording status'
52
+ };
53
+ }
54
+ else if (response.status === 403) {
55
+ throw new Error(`Permission denied: ${response.body.detail || 'You do not have permission to access this recording'}`);
56
+ }
57
+ else if (response.status === 404) {
58
+ throw new Error(`Recording not found: ${response.body.detail || 'No recording exists for this meeting'}`);
59
+ }
60
+ else if (response.status === 429) {
61
+ throw new Error(`Rate limit exceeded: ${response.body.detail || 'Too many requests. Please try again later'}`);
62
+ }
63
+ else if (response.status >= 400) {
64
+ throw new Error(`API error (${response.status}): ${JSON.stringify(response.body) || 'Unknown error'}`);
65
+ }
66
+ return {
67
+ success: false,
68
+ status: 'unknown',
69
+ meeting_uuid: meetingUuid,
70
+ error: 'Unexpected response from API'
71
+ };
72
+ }
73
+ catch (error) {
74
+ const errorMessage = error instanceof Error ? error.message : String(error);
75
+ throw new Error(`Failed to retrieve meeting recording for UUID ${meetingUuid}: ${errorMessage}`);
76
+ }
77
+ });
78
+ }
79
+ });
80
+ //# sourceMappingURL=get-meeting-recording.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-meeting-recording.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/avoma/src/lib/actions/get-meeting-recording.ts"],"names":[],"mappings":";;;;AAAA,oEAA6D;AAC7D,8DAAoE;AACpE,sCAAwC;AAE3B,QAAA,mBAAmB,GAAG,IAAA,+BAAY,EAAC;IAC9C,IAAI,EAAE,oBAAW,CAAC,SAAS;IAC3B,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,4DAA4D;IACzE,KAAK,EAAE;QACL,YAAY,EAAE,oBAAW,CAAC,eAAe;KAC1C;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;YAErC,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC;YAE5C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;oBAC5C,MAAM,EAAE,0BAAU,CAAC,GAAG;oBACtB,GAAG,EAAE,qDAAqD,WAAW,EAAE;oBACvE,OAAO,EAAE;wBACP,eAAe,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;wBAC7C,cAAc,EAAE,kBAAkB;qBACnC;iBACF,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,WAAW;wBACnB,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY;wBACxC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;wBAClC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS;wBAClC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS;wBAClC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;wBACpC,mBAAmB,EAAE,CAAC;qBACvB,CAAC;gBACJ,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnC,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,YAAY;wBACpB,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY;wBACxC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;wBAClC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,oDAAoD;wBACtF,IAAI,EAAE,gGAAgG;qBACvG,CAAC;gBACJ,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,qDAAqD,EAAE,CAAC,CAAC;gBACzH,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,sCAAsC,EAAE,CAAC,CAAC;gBAC5G,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,2CAA2C,EAAE,CAAC,CAAC;gBACjH,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBAClC,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;gBACzG,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,SAAS;oBACjB,YAAY,EAAE,WAAW;oBACzB,KAAK,EAAE,8BAA8B;iBACtC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,IAAI,KAAK,CAAC,iDAAiD,WAAW,KAAK,YAAY,EAAE,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const getMeetingTranscription: import("@scopieflows/pieces-framework").IAction<import("@scopieflows/pieces-framework").SecretTextProperty<true>, {
2
+ transcription_uuid: import("@scopieflows/pieces-framework").DropdownProperty<any, true, import("@scopieflows/pieces-framework").SecretTextProperty<true>>;
3
+ }>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMeetingTranscription = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@scopieflows/pieces-framework");
6
+ const pieces_common_1 = require("@scopieflows/pieces-common");
7
+ const common_1 = require("../common");
8
+ exports.getMeetingTranscription = (0, pieces_framework_1.createAction)({
9
+ auth: common_1.avomaCommon.avomaAuth,
10
+ name: 'get_meeting_transcription',
11
+ displayName: 'Get Meeting Transcription',
12
+ description: 'Returns transcription with speakers, timestamps, and VTT file URL',
13
+ props: {
14
+ transcription_uuid: common_1.avomaCommon.transcriptionDropdown
15
+ },
16
+ run(context) {
17
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
18
+ var _a, _b, _c, _d;
19
+ const { auth, propsValue } = context;
20
+ const transcriptionUuid = propsValue.transcription_uuid;
21
+ if (!transcriptionUuid) {
22
+ throw new Error('Please select a transcription from the dropdown');
23
+ }
24
+ try {
25
+ const response = yield pieces_common_1.httpClient.sendRequest({
26
+ method: pieces_common_1.HttpMethod.GET,
27
+ url: `https://api.avoma.com/v1/transcriptions/${transcriptionUuid}`,
28
+ headers: {
29
+ 'Authorization': `Bearer ${auth}`,
30
+ 'Content-Type': 'application/json'
31
+ }
32
+ });
33
+ if (response.status === 404) {
34
+ const errorDetail = ((_a = response.body) === null || _a === void 0 ? void 0 : _a.detail) || 'Transcription not found';
35
+ throw new Error(`Transcription not found: ${errorDetail}`);
36
+ }
37
+ else if (response.status >= 400) {
38
+ const errorDetail = ((_b = response.body) === null || _b === void 0 ? void 0 : _b.detail) || JSON.stringify(response.body) || 'Unknown error';
39
+ throw new Error(`API error (${response.status}): ${errorDetail}`);
40
+ }
41
+ const transcription = response.body;
42
+ return {
43
+ success: true,
44
+ meeting_uuid: transcription.meeting_uuid,
45
+ transcription_uuid: transcription.uuid,
46
+ transcription_vtt_url: transcription.transcription_vtt_url,
47
+ speakers: transcription.speakers || [],
48
+ transcript: transcription.transcript || [],
49
+ transcript_paragraphs_count: ((_c = transcription.transcript) === null || _c === void 0 ? void 0 : _c.length) || 0,
50
+ speakers_count: ((_d = transcription.speakers) === null || _d === void 0 ? void 0 : _d.length) || 0,
51
+ note: 'Use transcription_vtt_url to download the VTT subtitle file for the meeting'
52
+ };
53
+ }
54
+ catch (error) {
55
+ const errorMessage = error instanceof Error ? error.message : String(error);
56
+ throw new Error(`Failed to retrieve transcription: ${errorMessage}`);
57
+ }
58
+ });
59
+ }
60
+ });
61
+ //# sourceMappingURL=get-meeting-transcription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-meeting-transcription.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/avoma/src/lib/actions/get-meeting-transcription.ts"],"names":[],"mappings":";;;;AAAA,oEAA6D;AAC7D,8DAAoE;AACpE,sCAAwC;AAE3B,QAAA,uBAAuB,GAAG,IAAA,+BAAY,EAAC;IAClD,IAAI,EAAE,oBAAW,CAAC,SAAS;IAC3B,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,2BAA2B;IACxC,WAAW,EAAE,mEAAmE;IAChF,KAAK,EAAE;QACL,kBAAkB,EAAE,oBAAW,CAAC,qBAAqB;KACtD;IACK,GAAG,CAAC,OAAO;;;YACf,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;YAErC,MAAM,iBAAiB,GAAG,UAAU,CAAC,kBAAkB,CAAC;YAExD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;oBAC5C,MAAM,EAAE,0BAAU,CAAC,GAAG;oBACtB,GAAG,EAAE,2CAA2C,iBAAiB,EAAE;oBACnE,OAAO,EAAE;wBACP,eAAe,EAAE,UAAU,IAAI,EAAE;wBACjC,cAAc,EAAE,kBAAkB;qBACnC;iBACF,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,MAAM,WAAW,GAAG,CAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,MAAM,KAAI,yBAAyB,CAAC;oBACvE,MAAM,IAAI,KAAK,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;gBAC7D,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBAClC,MAAM,WAAW,GAAG,CAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,MAAM,KAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC;oBAC9F,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,MAAM,WAAW,EAAE,CAAC,CAAC;gBACpE,CAAC;gBAED,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE,aAAa,CAAC,YAAY;oBACxC,kBAAkB,EAAE,aAAa,CAAC,IAAI;oBACtC,qBAAqB,EAAE,aAAa,CAAC,qBAAqB;oBAC1D,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,EAAE;oBACtC,UAAU,EAAE,aAAa,CAAC,UAAU,IAAI,EAAE;oBAC1C,2BAA2B,EAAE,CAAA,MAAA,aAAa,CAAC,UAAU,0CAAE,MAAM,KAAI,CAAC;oBAClE,cAAc,EAAE,CAAA,MAAA,aAAa,CAAC,QAAQ,0CAAE,MAAM,KAAI,CAAC;oBACnD,IAAI,EAAE,6EAA6E;iBACpF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,IAAI,KAAK,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createCall } from './create-call';
2
+ export { getMeetingRecording } from './get-meeting-recording';
3
+ export { getMeetingTranscription } from './get-meeting-transcription';
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMeetingTranscription = exports.getMeetingRecording = exports.createCall = void 0;
4
+ var create_call_1 = require("./create-call");
5
+ Object.defineProperty(exports, "createCall", { enumerable: true, get: function () { return create_call_1.createCall; } });
6
+ var get_meeting_recording_1 = require("./get-meeting-recording");
7
+ Object.defineProperty(exports, "getMeetingRecording", { enumerable: true, get: function () { return get_meeting_recording_1.getMeetingRecording; } });
8
+ var get_meeting_transcription_1 = require("./get-meeting-transcription");
9
+ Object.defineProperty(exports, "getMeetingTranscription", { enumerable: true, get: function () { return get_meeting_transcription_1.getMeetingTranscription; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/avoma/src/lib/actions/index.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA"}
@@ -0,0 +1,7 @@
1
+ export declare const avomaCommon: {
2
+ avomaAuth: import("@scopieflows/pieces-framework").SecretTextProperty<true>;
3
+ meetingDropdown: import("@scopieflows/pieces-framework").DropdownProperty<any, true, import("@scopieflows/pieces-framework").SecretTextProperty<true>>;
4
+ transcriptionDropdown: import("@scopieflows/pieces-framework").DropdownProperty<any, true, import("@scopieflows/pieces-framework").SecretTextProperty<true>>;
5
+ meetingUuidProperty: import("@scopieflows/pieces-framework").ShortTextProperty<false>;
6
+ transcriptionUuidProperty: import("@scopieflows/pieces-framework").ShortTextProperty<false>;
7
+ };