@snokam/mcp-api 0.61.1 → 0.62.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.
@@ -1,1668 +0,0 @@
1
- {
2
- "openapi": "3.0.4",
3
- "info": {
4
- "title": "ChatGPT API",
5
- "description": "Azure OpenAI integrations",
6
- "version": "v1.0.0"
7
- },
8
- "servers": [
9
- {
10
- "url": "https://chatgpt.api.test.snokam.no"
11
- }
12
- ],
13
- "paths": {
14
- "/v1.0/newsletter/summary": {
15
- "post": {
16
- "tags": [
17
- "Newsletter"
18
- ],
19
- "summary": "Summarize newsletter of a given topic",
20
- "description": "Reads last week's newsletter mails and returns summary",
21
- "operationId": "summarizeNewsletter",
22
- "parameters": [
23
- {
24
- "name": "topic",
25
- "in": "query",
26
- "description": "Topic to summarize, e.g. AI",
27
- "schema": {
28
- "type": "string"
29
- },
30
- "x-ms-summary": "Technology topic"
31
- },
32
- {
33
- "name": "mailbox",
34
- "in": "query",
35
- "description": "Override the mailbox the summarizer reads, e.g. fag-feed@snokam.no. Falls back to the environment default.",
36
- "schema": {
37
- "type": "string"
38
- },
39
- "x-ms-summary": "Shared mailbox to read"
40
- }
41
- ],
42
- "responses": {
43
- "200": {
44
- "description": "Summary of the newsletter for the specified topic",
45
- "content": {
46
- "application/json": {
47
- "schema": {
48
- "$ref": "#/components/schemas/simpleResponseDto"
49
- }
50
- }
51
- },
52
- "x-ms-summary": "Success"
53
- }
54
- }
55
- }
56
- },
57
- "/v1.0/newsletter/single-news": {
58
- "post": {
59
- "tags": [
60
- "AI News"
61
- ],
62
- "summary": "Get a single AI news item",
63
- "description": "Fetches one AI news item from recent emails",
64
- "operationId": "getSingleNews",
65
- "parameters": [
66
- {
67
- "name": "topic",
68
- "in": "query",
69
- "description": "Topic to summarize, e.g. AI",
70
- "schema": {
71
- "type": "string"
72
- },
73
- "x-ms-summary": "Technology topic"
74
- }
75
- ],
76
- "responses": {
77
- "200": {
78
- "description": "A single AI news item",
79
- "content": {
80
- "application/json": {
81
- "schema": {
82
- "$ref": "#/components/schemas/simpleResponseDto"
83
- }
84
- }
85
- },
86
- "x-ms-summary": "Success"
87
- }
88
- }
89
- }
90
- },
91
- "/v1.0/protected/question": {
92
- "get": {
93
- "tags": [
94
- "Question"
95
- ],
96
- "summary": "Synchronously answer a question using ChatGPT",
97
- "description": "This function synchronously answers a question using ChatGPT.",
98
- "operationId": "protectedSyncQuestion",
99
- "parameters": [
100
- {
101
- "name": "input",
102
- "in": "query",
103
- "description": "The question input to be answered",
104
- "required": true,
105
- "schema": {
106
- "type": "string"
107
- },
108
- "x-ms-summary": "The question input"
109
- },
110
- {
111
- "name": "addDefaultPrompts",
112
- "in": "query",
113
- "description": "If true, default prompts from the Prompts folder will be added to the chat context.",
114
- "schema": {
115
- "type": "boolean"
116
- },
117
- "x-ms-summary": "Include Default Prompts"
118
- },
119
- {
120
- "name": "addApiTools",
121
- "in": "query",
122
- "description": "If true, API tools will be added to the chat context.",
123
- "schema": {
124
- "type": "boolean"
125
- },
126
- "x-ms-summary": "Include API Tools"
127
- }
128
- ],
129
- "responses": {
130
- "200": {
131
- "description": "Question answered successfully",
132
- "content": {
133
- "application/json": {
134
- "schema": {
135
- "$ref": "#/components/schemas/simpleResponseDto"
136
- }
137
- }
138
- },
139
- "x-ms-summary": "Success"
140
- }
141
- },
142
- "security": [
143
- {
144
- "Implicit": [
145
- "api://d6cb18a1-4d6c-4d6c-943f-92a97b39e5da/.default"
146
- ]
147
- }
148
- ]
149
- }
150
- },
151
- "/v1.0/protected/question/async": {
152
- "get": {
153
- "tags": [
154
- "Question"
155
- ],
156
- "summary": "Asynchronously answer a question using ChatGPT",
157
- "description": "This function asynchronously answers a question using ChatGPT.",
158
- "operationId": "protectedAsyncQuestion",
159
- "parameters": [
160
- {
161
- "name": "input",
162
- "in": "query",
163
- "description": "The question input to be answered",
164
- "required": true,
165
- "schema": {
166
- "type": "string"
167
- },
168
- "x-ms-summary": "The question input"
169
- },
170
- {
171
- "name": "addDefaultPrompts",
172
- "in": "query",
173
- "description": "If true, default prompts from the Prompts folder will be added to the chat context.",
174
- "schema": {
175
- "type": "boolean"
176
- },
177
- "x-ms-summary": "Include Default Prompts"
178
- },
179
- {
180
- "name": "addApiTools",
181
- "in": "query",
182
- "description": "If true, API tools will be added to the chat context.",
183
- "schema": {
184
- "type": "boolean"
185
- },
186
- "x-ms-summary": "Include API Tools"
187
- }
188
- ],
189
- "responses": {
190
- "200": {
191
- "description": "Question answered successfully",
192
- "x-ms-summary": "Success"
193
- }
194
- },
195
- "security": [
196
- {
197
- "Implicit": [
198
- "api://d6cb18a1-4d6c-4d6c-943f-92a97b39e5da/.default"
199
- ]
200
- }
201
- ]
202
- }
203
- },
204
- "/v1.0/protected/conversation": {
205
- "post": {
206
- "tags": [
207
- "Conversation"
208
- ],
209
- "summary": "Synchronously handle a conversation using ChatGPT",
210
- "description": "This function synchronously handles a conversation using ChatGPT.",
211
- "operationId": "protectedSyncConversation",
212
- "parameters": [
213
- {
214
- "name": "addDefaultPrompts",
215
- "in": "query",
216
- "description": "If true, default prompts from the Prompts folder will be added to the chat context.",
217
- "schema": {
218
- "type": "boolean"
219
- },
220
- "x-ms-summary": "Include Default Prompts"
221
- },
222
- {
223
- "name": "addApiTools",
224
- "in": "query",
225
- "description": "If true, API tools will be added to the chat context.",
226
- "schema": {
227
- "type": "boolean"
228
- },
229
- "x-ms-summary": "Include API Tools"
230
- }
231
- ],
232
- "requestBody": {
233
- "description": "List of chat messages",
234
- "content": {
235
- "application/json": {
236
- "schema": {
237
- "type": "array",
238
- "items": {
239
- "$ref": "#/components/schemas/inputChatMessage"
240
- }
241
- }
242
- }
243
- },
244
- "required": true
245
- },
246
- "responses": {
247
- "200": {
248
- "description": "Conversation handled successfully",
249
- "content": {
250
- "application/json": {
251
- "schema": {
252
- "$ref": "#/components/schemas/simpleResponseDto"
253
- }
254
- }
255
- },
256
- "x-ms-summary": "Success"
257
- }
258
- },
259
- "security": [
260
- {
261
- "Implicit": [
262
- "api://d6cb18a1-4d6c-4d6c-943f-92a97b39e5da/.default"
263
- ]
264
- }
265
- ]
266
- }
267
- },
268
- "/v1.0/protected/conversation/async": {
269
- "post": {
270
- "tags": [
271
- "Conversation"
272
- ],
273
- "summary": "Asynchronously handle a conversation using ChatGPT",
274
- "description": "This function asynchronously handles a conversation using ChatGPT.",
275
- "operationId": "protectedAsyncConversation",
276
- "parameters": [
277
- {
278
- "name": "addDefaultPrompts",
279
- "in": "query",
280
- "description": "If true, default prompts from the Prompts folder will be added to the chat context.",
281
- "schema": {
282
- "type": "boolean"
283
- },
284
- "x-ms-summary": "Include Default Prompts"
285
- },
286
- {
287
- "name": "addApiTools",
288
- "in": "query",
289
- "description": "If true, API tools will be added to the chat context.",
290
- "schema": {
291
- "type": "boolean"
292
- },
293
- "x-ms-summary": "Include API Tools"
294
- }
295
- ],
296
- "requestBody": {
297
- "description": "List of chat messages",
298
- "content": {
299
- "application/json": {
300
- "schema": {
301
- "type": "array",
302
- "items": {
303
- "$ref": "#/components/schemas/inputChatMessage"
304
- }
305
- }
306
- }
307
- },
308
- "required": true
309
- },
310
- "responses": {
311
- "200": {
312
- "description": "Conversation handled successfully",
313
- "x-ms-summary": "Success"
314
- }
315
- },
316
- "security": [
317
- {
318
- "Implicit": [
319
- "api://d6cb18a1-4d6c-4d6c-943f-92a97b39e5da/.default"
320
- ]
321
- }
322
- ]
323
- }
324
- },
325
- "/v1.0/question": {
326
- "get": {
327
- "tags": [
328
- "Question"
329
- ],
330
- "summary": "Synchronously answer a question using ChatGPT",
331
- "description": "This function synchronously answers a question using ChatGPT.",
332
- "operationId": "syncQuestion",
333
- "parameters": [
334
- {
335
- "name": "input",
336
- "in": "query",
337
- "description": "The question input to be answered",
338
- "required": true,
339
- "schema": {
340
- "type": "string"
341
- },
342
- "x-ms-summary": "The question input"
343
- },
344
- {
345
- "name": "addDefaultPrompts",
346
- "in": "query",
347
- "description": "If true, default prompts from the Prompts folder will be added to the chat context.",
348
- "schema": {
349
- "type": "boolean"
350
- },
351
- "x-ms-summary": "Include Default Prompts"
352
- },
353
- {
354
- "name": "addApiTools",
355
- "in": "query",
356
- "description": "If true, API tools will be added to the chat context.",
357
- "schema": {
358
- "type": "boolean"
359
- },
360
- "x-ms-summary": "Include API Tools"
361
- }
362
- ],
363
- "responses": {
364
- "200": {
365
- "description": "Question answered successfully",
366
- "content": {
367
- "application/json": {
368
- "schema": {
369
- "$ref": "#/components/schemas/simpleResponseDto"
370
- }
371
- }
372
- },
373
- "x-ms-summary": "Success"
374
- }
375
- }
376
- }
377
- },
378
- "/v1.0/question/async": {
379
- "get": {
380
- "tags": [
381
- "Question"
382
- ],
383
- "summary": "Asynchronously answer a question using ChatGPT",
384
- "description": "This function asynchronously answers a question using ChatGPT.",
385
- "operationId": "asyncQuestion",
386
- "parameters": [
387
- {
388
- "name": "input",
389
- "in": "query",
390
- "description": "The question input to be answered",
391
- "required": true,
392
- "schema": {
393
- "type": "string"
394
- },
395
- "x-ms-summary": "The question input"
396
- },
397
- {
398
- "name": "addDefaultPrompts",
399
- "in": "query",
400
- "description": "If true, default prompts from the Prompts folder will be added to the chat context.",
401
- "schema": {
402
- "type": "boolean"
403
- },
404
- "x-ms-summary": "Include Default Prompts"
405
- },
406
- {
407
- "name": "addApiTools",
408
- "in": "query",
409
- "description": "If true, API tools will be added to the chat context.",
410
- "schema": {
411
- "type": "boolean"
412
- },
413
- "x-ms-summary": "Include API Tools"
414
- }
415
- ],
416
- "responses": {
417
- "200": {
418
- "description": "Question answered successfully",
419
- "x-ms-summary": "Success"
420
- }
421
- }
422
- }
423
- },
424
- "/v1.0/conversation": {
425
- "post": {
426
- "tags": [
427
- "Conversation"
428
- ],
429
- "summary": "Synchronously handle a conversation using ChatGPT",
430
- "description": "This function synchronously handles a conversation using ChatGPT.",
431
- "operationId": "syncConversation",
432
- "parameters": [
433
- {
434
- "name": "addDefaultPrompts",
435
- "in": "query",
436
- "description": "If true, default prompts from the Prompts folder will be added to the chat context.",
437
- "schema": {
438
- "type": "boolean"
439
- },
440
- "x-ms-summary": "Include Default Prompts"
441
- },
442
- {
443
- "name": "addApiTools",
444
- "in": "query",
445
- "description": "If true, API tools will be added to the chat context.",
446
- "schema": {
447
- "type": "boolean"
448
- },
449
- "x-ms-summary": "Include API Tools"
450
- }
451
- ],
452
- "requestBody": {
453
- "description": "List of chat messages",
454
- "content": {
455
- "application/json": {
456
- "schema": {
457
- "type": "array",
458
- "items": {
459
- "$ref": "#/components/schemas/inputChatMessage"
460
- }
461
- }
462
- }
463
- },
464
- "required": true
465
- },
466
- "responses": {
467
- "200": {
468
- "description": "Conversation handled successfully",
469
- "content": {
470
- "application/json": {
471
- "schema": {
472
- "$ref": "#/components/schemas/simpleResponseDto"
473
- }
474
- }
475
- },
476
- "x-ms-summary": "Success"
477
- }
478
- }
479
- }
480
- },
481
- "/v1.0/conversation/async": {
482
- "post": {
483
- "tags": [
484
- "Conversation"
485
- ],
486
- "summary": "Asynchronously handle a conversation using ChatGPT",
487
- "description": "This function asynchronously handles a conversation using ChatGPT.",
488
- "operationId": "asyncConversation",
489
- "parameters": [
490
- {
491
- "name": "addDefaultPrompts",
492
- "in": "query",
493
- "description": "If true, default prompts from the Prompts folder will be added to the chat context.",
494
- "schema": {
495
- "type": "boolean"
496
- },
497
- "x-ms-summary": "Include Default Prompts"
498
- },
499
- {
500
- "name": "addApiTools",
501
- "in": "query",
502
- "description": "If true, API tools will be added to the chat context.",
503
- "schema": {
504
- "type": "boolean"
505
- },
506
- "x-ms-summary": "Include API Tools"
507
- }
508
- ],
509
- "requestBody": {
510
- "description": "List of chat messages",
511
- "content": {
512
- "application/json": {
513
- "schema": {
514
- "type": "array",
515
- "items": {
516
- "$ref": "#/components/schemas/inputChatMessage"
517
- }
518
- }
519
- }
520
- },
521
- "required": true
522
- },
523
- "responses": {
524
- "200": {
525
- "description": "Conversation handled successfully",
526
- "x-ms-summary": "Success"
527
- }
528
- }
529
- }
530
- },
531
- "/v1.0/public/blob-storage": {
532
- "get": {
533
- "tags": [
534
- "Tokens"
535
- ],
536
- "summary": "Gets blob storage and creates sas token",
537
- "description": "Generates a sas token for use to upload image and video memories to azure blob storage",
538
- "operationId": "GetBlobStorage",
539
- "responses": {
540
- "200": {
541
- "description": "Generated token",
542
- "content": {
543
- "application/json": {
544
- "schema": {
545
- "$ref": "#/components/schemas/azureBlobStorageCredentials"
546
- }
547
- }
548
- },
549
- "x-ms-summary": "Success"
550
- },
551
- "401": {
552
- "description": "User is not authorized",
553
- "x-ms-summary": "Unauthorized"
554
- }
555
- }
556
- }
557
- },
558
- "/v1.0/slack/event": {
559
- "post": {
560
- "tags": [
561
- "Slack"
562
- ],
563
- "summary": "Handle a Slack event",
564
- "description": "This function handles a Slack event.",
565
- "operationId": "slackEvent",
566
- "requestBody": {
567
- "description": "Slack event data",
568
- "content": {
569
- "application/json": {
570
- "schema": {
571
- "$ref": "#/components/schemas/slackEvent"
572
- }
573
- }
574
- },
575
- "required": true
576
- },
577
- "responses": {
578
- "200": {
579
- "description": "Slack event handled successfully",
580
- "content": {
581
- "application/json": {
582
- "schema": {
583
- "$ref": "#/components/schemas/slackEvent"
584
- }
585
- }
586
- },
587
- "x-ms-summary": "Success"
588
- },
589
- "204": {
590
- "description": "No relevant Slack event found",
591
- "x-ms-summary": "No Content"
592
- }
593
- }
594
- }
595
- },
596
- "/v1.0/realtime/get-ephemeral-token": {
597
- "post": {
598
- "tags": [
599
- "Realtime"
600
- ],
601
- "summary": "Get ephemeral token for Azure OpenAI realtime session",
602
- "description": "Returns Azure OpenAI connection details for a realtime session. Use `agent` query param to switch assistant behavior.",
603
- "operationId": "GetEphemeralToken",
604
- "parameters": [
605
- {
606
- "name": "agent",
607
- "in": "query",
608
- "schema": {
609
- "type": "string"
610
- },
611
- "x-ms-summary": "Agent (e.g. 'create-event', 'default')"
612
- },
613
- {
614
- "name": "voice",
615
- "in": "query",
616
- "schema": {
617
- "type": "string"
618
- },
619
- "x-ms-summary": "Voice (e.g. 'ash', 'alloy')"
620
- }
621
- ],
622
- "responses": {
623
- "200": {
624
- "description": "Payload of RealtimeSession",
625
- "content": {
626
- "application/json": {
627
- "schema": {
628
- "$ref": "#/components/schemas/realtimeSession"
629
- }
630
- }
631
- },
632
- "x-ms-summary": "Session started"
633
- }
634
- }
635
- }
636
- },
637
- "/v1.0/realtime/agents": {
638
- "get": {
639
- "tags": [
640
- "Realtime"
641
- ],
642
- "summary": "List all available contexts",
643
- "description": "Lists all predefined context modes for GPT-4o realtime sessions",
644
- "operationId": "GetAvailableAgents",
645
- "responses": {
646
- "200": {
647
- "description": "Payload of Array of RealtimeAgentsDto",
648
- "content": {
649
- "application/json": {
650
- "schema": {
651
- "type": "array",
652
- "items": {
653
- "$ref": "#/components/schemas/realtimeAgentsDto"
654
- }
655
- }
656
- }
657
- },
658
- "x-ms-summary": "Contexts listed"
659
- }
660
- }
661
- }
662
- },
663
- "/followup-email": {
664
- "post": {
665
- "tags": [
666
- "Follow-up Email"
667
- ],
668
- "summary": "Generate a follow-up email for a company, and save it as a draft in the pre-configured mailbox",
669
- "description": "Generates a personalized follow-up email using Salesforce data and external research",
670
- "operationId": "generateFollowUpEmail",
671
- "parameters": [
672
- {
673
- "name": "companyName",
674
- "in": "query",
675
- "description": "The name of the company to generate a follow-up email for",
676
- "required": true,
677
- "schema": {
678
- "type": "string"
679
- },
680
- "x-ms-summary": "Company name"
681
- }
682
- ],
683
- "responses": {
684
- "200": {
685
- "description": "The generated follow-up email",
686
- "content": {
687
- "application/json": {
688
- "schema": {
689
- "$ref": "#/components/schemas/followUpEmailResponse"
690
- }
691
- }
692
- },
693
- "x-ms-summary": "Success"
694
- },
695
- "400": {
696
- "description": "Invalid input parameters",
697
- "content": {
698
- "application/json": {
699
- "schema": {
700
- "$ref": "#/components/schemas/errorResponse"
701
- }
702
- }
703
- },
704
- "x-ms-summary": "Bad Request"
705
- },
706
- "500": {
707
- "description": "An error occurred while generating the email",
708
- "content": {
709
- "application/json": {
710
- "schema": {
711
- "$ref": "#/components/schemas/errorResponse"
712
- }
713
- }
714
- },
715
- "x-ms-summary": "Internal Server Error"
716
- }
717
- },
718
- "security": [
719
- {
720
- "Implicit": [
721
- "api://d6cb18a1-4d6c-4d6c-943f-92a97b39e5da/.default"
722
- ]
723
- }
724
- ]
725
- },
726
- "get": {
727
- "tags": [
728
- "Follow-up Email"
729
- ],
730
- "summary": "Generate follow-up email content for a company",
731
- "description": "Generates personalized follow-up email content using Salesforce data and external research. Returns the email content without creating a draft.",
732
- "operationId": "generateFollowUpEmailGet",
733
- "parameters": [
734
- {
735
- "name": "companyName",
736
- "in": "query",
737
- "description": "The name of the company to generate a follow-up email for",
738
- "required": true,
739
- "schema": {
740
- "type": "string"
741
- },
742
- "x-ms-summary": "Company name"
743
- }
744
- ],
745
- "responses": {
746
- "200": {
747
- "description": "The generated follow-up email content",
748
- "content": {
749
- "application/json": {
750
- "schema": {
751
- "$ref": "#/components/schemas/emailContentResponse"
752
- }
753
- }
754
- },
755
- "x-ms-summary": "Success"
756
- },
757
- "400": {
758
- "description": "Invalid input parameters",
759
- "content": {
760
- "application/json": {
761
- "schema": {
762
- "$ref": "#/components/schemas/errorResponse"
763
- }
764
- }
765
- },
766
- "x-ms-summary": "Bad Request"
767
- },
768
- "500": {
769
- "description": "An error occurred while generating the email",
770
- "content": {
771
- "application/json": {
772
- "schema": {
773
- "$ref": "#/components/schemas/errorResponse"
774
- }
775
- }
776
- },
777
- "x-ms-summary": "Internal Server Error"
778
- }
779
- },
780
- "security": [
781
- {
782
- "Implicit": [
783
- "api://d6cb18a1-4d6c-4d6c-943f-92a97b39e5da/.default"
784
- ]
785
- }
786
- ]
787
- }
788
- },
789
- "/followup-email/contact": {
790
- "post": {
791
- "tags": [
792
- "Follow-up Email"
793
- ],
794
- "summary": "Generate a follow-up email for a specific contact, and save it as a draft in the pre-configured mailbox",
795
- "description": "Generates a personalized follow-up email using Salesforce contact data and external research. No email will be sent automatically, but the email will be saved as a draft.",
796
- "operationId": "generateFollowUpEmailByContact",
797
- "parameters": [
798
- {
799
- "name": "contactId",
800
- "in": "query",
801
- "description": "The Salesforce ID of the contact to generate a follow-up email for",
802
- "required": true,
803
- "schema": {
804
- "type": "string"
805
- },
806
- "x-ms-summary": "Contact ID"
807
- }
808
- ],
809
- "responses": {
810
- "200": {
811
- "description": "The generated follow-up email",
812
- "content": {
813
- "application/json": {
814
- "schema": {
815
- "$ref": "#/components/schemas/followUpEmailResponse"
816
- }
817
- }
818
- },
819
- "x-ms-summary": "Success"
820
- },
821
- "400": {
822
- "description": "Invalid input parameters",
823
- "content": {
824
- "application/json": {
825
- "schema": {
826
- "$ref": "#/components/schemas/errorResponse"
827
- }
828
- }
829
- },
830
- "x-ms-summary": "Bad Request"
831
- },
832
- "500": {
833
- "description": "An error occurred while generating the email",
834
- "content": {
835
- "application/json": {
836
- "schema": {
837
- "$ref": "#/components/schemas/errorResponse"
838
- }
839
- }
840
- },
841
- "x-ms-summary": "Internal Server Error"
842
- }
843
- },
844
- "security": [
845
- {
846
- "Implicit": [
847
- "api://d6cb18a1-4d6c-4d6c-943f-92a97b39e5da/.default"
848
- ]
849
- }
850
- ]
851
- },
852
- "get": {
853
- "tags": [
854
- "Follow-up Email"
855
- ],
856
- "summary": "Generate follow-up email content for a specific contact",
857
- "description": "Generates personalized follow-up email content using Salesforce contact data and external research. Returns the email content without creating a draft.",
858
- "operationId": "generateFollowUpEmailByContactGet",
859
- "parameters": [
860
- {
861
- "name": "contactId",
862
- "in": "query",
863
- "description": "The Salesforce ID of the contact to generate a follow-up email for",
864
- "required": true,
865
- "schema": {
866
- "type": "string"
867
- },
868
- "x-ms-summary": "Contact ID"
869
- }
870
- ],
871
- "responses": {
872
- "200": {
873
- "description": "The generated follow-up email content",
874
- "content": {
875
- "application/json": {
876
- "schema": {
877
- "$ref": "#/components/schemas/emailContentResponse"
878
- }
879
- }
880
- },
881
- "x-ms-summary": "Success"
882
- },
883
- "400": {
884
- "description": "Invalid input parameters",
885
- "content": {
886
- "application/json": {
887
- "schema": {
888
- "$ref": "#/components/schemas/errorResponse"
889
- }
890
- }
891
- },
892
- "x-ms-summary": "Bad Request"
893
- },
894
- "500": {
895
- "description": "An error occurred while generating the email",
896
- "content": {
897
- "application/json": {
898
- "schema": {
899
- "$ref": "#/components/schemas/errorResponse"
900
- }
901
- }
902
- },
903
- "x-ms-summary": "Internal Server Error"
904
- }
905
- },
906
- "security": [
907
- {
908
- "Implicit": [
909
- "api://d6cb18a1-4d6c-4d6c-943f-92a97b39e5da/.default"
910
- ]
911
- }
912
- ]
913
- }
914
- },
915
- "/followup-email/automated": {
916
- "post": {
917
- "tags": [
918
- "Automated Follow-up"
919
- ],
920
- "summary": "Process automated follow-up emails for strategic priority contacts",
921
- "description": "Processes strategic priority contacts with LastActivity > specified days or null, creating draft emails if no existing drafts exist. This is the same logic that runs daily via CronJob.",
922
- "operationId": "processAutomatedFollowUpEmails",
923
- "parameters": [
924
- {
925
- "name": "priority",
926
- "in": "query",
927
- "description": "The strategic priority to filter contacts. Valid values: A, B, C, D (default: D)",
928
- "schema": {
929
- "type": "string"
930
- },
931
- "x-ms-summary": "Strategic priority"
932
- },
933
- {
934
- "name": "daysBack",
935
- "in": "query",
936
- "description": "Number of days to look back for last activity (default: 90)",
937
- "schema": {
938
- "type": "integer",
939
- "format": "int32"
940
- },
941
- "x-ms-summary": "Days back"
942
- }
943
- ],
944
- "responses": {
945
- "200": {
946
- "description": "The processing results",
947
- "content": {
948
- "application/json": {
949
- "schema": {
950
- "$ref": "#/components/schemas/followUpEmailResponse"
951
- }
952
- }
953
- },
954
- "x-ms-summary": "Success"
955
- },
956
- "500": {
957
- "description": "An error occurred while processing automated follow-ups",
958
- "content": {
959
- "application/json": {
960
- "schema": {
961
- "$ref": "#/components/schemas/errorResponse"
962
- }
963
- }
964
- },
965
- "x-ms-summary": "Internal Server Error"
966
- }
967
- },
968
- "security": [
969
- {
970
- "Implicit": [
971
- "api://d6cb18a1-4d6c-4d6c-943f-92a97b39e5da/.default"
972
- ]
973
- }
974
- ]
975
- }
976
- }
977
- },
978
- "components": {
979
- "schemas": {
980
- "authorization": {
981
- "type": "object",
982
- "properties": {
983
- "enterprise_id": {
984
- "type": "object",
985
- "nullable": true
986
- },
987
- "team_id": {
988
- "type": "string",
989
- "nullable": true
990
- },
991
- "user_id": {
992
- "type": "string",
993
- "nullable": true
994
- },
995
- "is_bot": {
996
- "type": "boolean",
997
- "nullable": true
998
- },
999
- "is_enterprise_install": {
1000
- "type": "boolean",
1001
- "nullable": true
1002
- }
1003
- }
1004
- },
1005
- "azureBlobStorageCredentials": {
1006
- "type": "object",
1007
- "properties": {
1008
- "blobUrl": {
1009
- "type": "string"
1010
- },
1011
- "sasToken": {
1012
- "type": "string"
1013
- },
1014
- "additionalProperties": {
1015
- "type": "object",
1016
- "additionalProperties": {
1017
- "type": "object"
1018
- }
1019
- }
1020
- }
1021
- },
1022
- "clientSecret": {
1023
- "type": "object",
1024
- "properties": {
1025
- "value": {
1026
- "type": "string",
1027
- "nullable": true
1028
- },
1029
- "expires_at": {
1030
- "type": "integer",
1031
- "format": "int64",
1032
- "nullable": true
1033
- }
1034
- },
1035
- "nullable": true
1036
- },
1037
- "emailContentResponse": {
1038
- "type": "object",
1039
- "properties": {
1040
- "success": {
1041
- "type": "boolean"
1042
- },
1043
- "message": {
1044
- "type": "string"
1045
- },
1046
- "subject": {
1047
- "type": "string"
1048
- },
1049
- "body": {
1050
- "type": "string"
1051
- },
1052
- "companyName": {
1053
- "type": "string"
1054
- },
1055
- "contactId": {
1056
- "type": "string"
1057
- },
1058
- "salesforceData": {
1059
- "type": "string"
1060
- },
1061
- "externalResearch": {
1062
- "type": "string"
1063
- }
1064
- }
1065
- },
1066
- "errorResponse": {
1067
- "type": "object",
1068
- "properties": {
1069
- "error": {
1070
- "type": "string"
1071
- },
1072
- "message": {
1073
- "type": "string"
1074
- },
1075
- "details": {
1076
- "type": "string"
1077
- }
1078
- }
1079
- },
1080
- "event": {
1081
- "type": "object",
1082
- "properties": {
1083
- "type": {
1084
- "type": "string",
1085
- "nullable": true
1086
- },
1087
- "text": {
1088
- "type": "string",
1089
- "nullable": true
1090
- },
1091
- "files": {
1092
- "type": "array",
1093
- "items": {
1094
- "$ref": "#/components/schemas/file"
1095
- },
1096
- "nullable": true
1097
- },
1098
- "upload": {
1099
- "type": "boolean",
1100
- "nullable": true
1101
- },
1102
- "user": {
1103
- "type": "string",
1104
- "nullable": true
1105
- },
1106
- "display_as_bot": {
1107
- "type": "boolean",
1108
- "nullable": true
1109
- },
1110
- "bot_id": {
1111
- "type": "string",
1112
- "nullable": true
1113
- },
1114
- "ts": {
1115
- "type": "string",
1116
- "nullable": true
1117
- },
1118
- "channel": {
1119
- "type": "string",
1120
- "nullable": true
1121
- },
1122
- "subtype": {
1123
- "type": "string",
1124
- "nullable": true
1125
- },
1126
- "event_ts": {
1127
- "type": "string",
1128
- "nullable": true
1129
- },
1130
- "channel_type": {
1131
- "type": "string",
1132
- "nullable": true
1133
- }
1134
- },
1135
- "nullable": true
1136
- },
1137
- "file": {
1138
- "type": "object",
1139
- "properties": {
1140
- "id": {
1141
- "type": "string",
1142
- "nullable": true
1143
- },
1144
- "created": {
1145
- "type": "integer",
1146
- "format": "int32",
1147
- "nullable": true
1148
- },
1149
- "timestamp": {
1150
- "type": "integer",
1151
- "format": "int32",
1152
- "nullable": true
1153
- },
1154
- "name": {
1155
- "type": "string",
1156
- "nullable": true
1157
- },
1158
- "title": {
1159
- "type": "string",
1160
- "nullable": true
1161
- },
1162
- "mimetype": {
1163
- "type": "string",
1164
- "nullable": true
1165
- },
1166
- "filetype": {
1167
- "type": "string",
1168
- "nullable": true
1169
- },
1170
- "pretty_type": {
1171
- "type": "string",
1172
- "nullable": true
1173
- },
1174
- "user": {
1175
- "type": "string",
1176
- "nullable": true
1177
- },
1178
- "user_team": {
1179
- "type": "string",
1180
- "nullable": true
1181
- },
1182
- "editable": {
1183
- "type": "boolean",
1184
- "nullable": true
1185
- },
1186
- "size": {
1187
- "type": "integer",
1188
- "format": "int32",
1189
- "nullable": true
1190
- },
1191
- "mode": {
1192
- "type": "string",
1193
- "nullable": true
1194
- },
1195
- "is_external": {
1196
- "type": "boolean",
1197
- "nullable": true
1198
- },
1199
- "external_type": {
1200
- "type": "string",
1201
- "nullable": true
1202
- },
1203
- "is_public": {
1204
- "type": "boolean",
1205
- "nullable": true
1206
- },
1207
- "public_url_shared": {
1208
- "type": "boolean",
1209
- "nullable": true
1210
- },
1211
- "display_as_bot": {
1212
- "type": "boolean",
1213
- "nullable": true
1214
- },
1215
- "username": {
1216
- "type": "string",
1217
- "nullable": true
1218
- },
1219
- "url_private": {
1220
- "type": "string",
1221
- "nullable": true
1222
- },
1223
- "url_private_download": {
1224
- "type": "string",
1225
- "nullable": true
1226
- },
1227
- "permalink": {
1228
- "type": "string",
1229
- "nullable": true
1230
- },
1231
- "permalink_public": {
1232
- "type": "string",
1233
- "nullable": true
1234
- },
1235
- "subject": {
1236
- "type": "string",
1237
- "nullable": true
1238
- },
1239
- "to": {
1240
- "type": "array",
1241
- "items": {
1242
- "$ref": "#/components/schemas/to"
1243
- },
1244
- "nullable": true
1245
- },
1246
- "from": {
1247
- "type": "array",
1248
- "items": {
1249
- "$ref": "#/components/schemas/from"
1250
- },
1251
- "nullable": true
1252
- },
1253
- "cc": {
1254
- "type": "array",
1255
- "items": {
1256
- "type": "object"
1257
- },
1258
- "nullable": true
1259
- },
1260
- "attachments": {
1261
- "type": "array",
1262
- "items": {
1263
- "type": "object"
1264
- },
1265
- "nullable": true
1266
- },
1267
- "original_attachment_count": {
1268
- "type": "integer",
1269
- "format": "int32",
1270
- "nullable": true
1271
- },
1272
- "plain_text": {
1273
- "type": "string",
1274
- "nullable": true
1275
- },
1276
- "preview": {
1277
- "type": "string",
1278
- "nullable": true
1279
- },
1280
- "preview_plain_text": {
1281
- "type": "string",
1282
- "nullable": true
1283
- },
1284
- "headers": {
1285
- "$ref": "#/components/schemas/headers"
1286
- },
1287
- "has_more": {
1288
- "type": "boolean",
1289
- "nullable": true
1290
- },
1291
- "sent_to_self": {
1292
- "type": "boolean",
1293
- "nullable": true
1294
- },
1295
- "bot_id": {
1296
- "type": "string",
1297
- "nullable": true
1298
- },
1299
- "has_rich_preview": {
1300
- "type": "boolean",
1301
- "nullable": true
1302
- },
1303
- "file_access": {
1304
- "type": "string",
1305
- "nullable": true
1306
- }
1307
- }
1308
- },
1309
- "followUpEmailResponse": {
1310
- "type": "object",
1311
- "properties": {
1312
- "success": {
1313
- "type": "boolean"
1314
- },
1315
- "message": {
1316
- "type": "string"
1317
- },
1318
- "result": {
1319
- "type": "string"
1320
- },
1321
- "companyName": {
1322
- "type": "string"
1323
- },
1324
- "contactId": {
1325
- "type": "string"
1326
- }
1327
- }
1328
- },
1329
- "from": {
1330
- "type": "object",
1331
- "properties": {
1332
- "address": {
1333
- "type": "string",
1334
- "nullable": true
1335
- },
1336
- "name": {
1337
- "type": "string",
1338
- "nullable": true
1339
- },
1340
- "original": {
1341
- "type": "string",
1342
- "nullable": true
1343
- }
1344
- }
1345
- },
1346
- "headers": {
1347
- "type": "object",
1348
- "properties": {
1349
- "date": {
1350
- "type": "string",
1351
- "nullable": true
1352
- },
1353
- "in_reply_to": {
1354
- "type": "string",
1355
- "nullable": true
1356
- },
1357
- "reply_to": {
1358
- "type": "object",
1359
- "nullable": true
1360
- },
1361
- "message_id": {
1362
- "type": "string",
1363
- "nullable": true
1364
- }
1365
- },
1366
- "nullable": true
1367
- },
1368
- "inputChatMessage": {
1369
- "type": "object",
1370
- "properties": {
1371
- "role": {
1372
- "type": "string"
1373
- },
1374
- "content": {
1375
- "type": "string"
1376
- },
1377
- "type": {
1378
- "type": "string"
1379
- }
1380
- }
1381
- },
1382
- "parameters": {
1383
- "type": "object",
1384
- "properties": {
1385
- "type": {
1386
- "type": "string",
1387
- "nullable": true
1388
- },
1389
- "properties": {
1390
- "type": "object",
1391
- "additionalProperties": {
1392
- "$ref": "#/components/schemas/property"
1393
- },
1394
- "nullable": true
1395
- },
1396
- "required": {
1397
- "type": "array",
1398
- "items": {
1399
- "type": "string"
1400
- },
1401
- "nullable": true
1402
- }
1403
- },
1404
- "nullable": true
1405
- },
1406
- "property": {
1407
- "type": "object",
1408
- "properties": {
1409
- "type": {
1410
- "type": "string",
1411
- "nullable": true
1412
- },
1413
- "description": {
1414
- "type": "string",
1415
- "nullable": true
1416
- }
1417
- }
1418
- },
1419
- "realtimeAgentsDto": {
1420
- "type": "object",
1421
- "properties": {
1422
- "context": {
1423
- "type": "string"
1424
- },
1425
- "description": {
1426
- "type": "string"
1427
- }
1428
- }
1429
- },
1430
- "realtimeSession": {
1431
- "type": "object",
1432
- "properties": {
1433
- "id": {
1434
- "type": "string",
1435
- "nullable": true
1436
- },
1437
- "object": {
1438
- "type": "string",
1439
- "nullable": true
1440
- },
1441
- "expires_at": {
1442
- "type": "integer",
1443
- "format": "int64",
1444
- "nullable": true
1445
- },
1446
- "input_audio_noise_reduction": {
1447
- "type": "object",
1448
- "nullable": true
1449
- },
1450
- "turn_detection": {
1451
- "$ref": "#/components/schemas/turnDetection"
1452
- },
1453
- "input_audio_format": {
1454
- "type": "string",
1455
- "nullable": true
1456
- },
1457
- "input_audio_transcription": {
1458
- "type": "object",
1459
- "nullable": true
1460
- },
1461
- "client_secret": {
1462
- "$ref": "#/components/schemas/clientSecret"
1463
- },
1464
- "realtime_url": {
1465
- "type": "string",
1466
- "nullable": true
1467
- },
1468
- "include": {
1469
- "type": "object",
1470
- "nullable": true
1471
- },
1472
- "model": {
1473
- "type": "string",
1474
- "nullable": true
1475
- },
1476
- "modalities": {
1477
- "type": "array",
1478
- "items": {
1479
- "type": "string"
1480
- },
1481
- "nullable": true
1482
- },
1483
- "instructions": {
1484
- "type": "string",
1485
- "nullable": true
1486
- },
1487
- "voice": {
1488
- "type": "string",
1489
- "nullable": true
1490
- },
1491
- "output_audio_format": {
1492
- "type": "string",
1493
- "nullable": true
1494
- },
1495
- "tool_choice": {
1496
- "type": "string",
1497
- "nullable": true
1498
- },
1499
- "temperature": {
1500
- "type": "number",
1501
- "format": "double",
1502
- "nullable": true
1503
- },
1504
- "max_response_output_tokens": {
1505
- "type": "string",
1506
- "nullable": true
1507
- },
1508
- "tools": {
1509
- "type": "array",
1510
- "items": {
1511
- "$ref": "#/components/schemas/tool"
1512
- },
1513
- "nullable": true
1514
- }
1515
- }
1516
- },
1517
- "simpleResponseDto": {
1518
- "type": "object",
1519
- "properties": {
1520
- "answer": {
1521
- "type": "string"
1522
- }
1523
- }
1524
- },
1525
- "slackEvent": {
1526
- "type": "object",
1527
- "properties": {
1528
- "token": {
1529
- "type": "string",
1530
- "nullable": true
1531
- },
1532
- "team_id": {
1533
- "type": "string",
1534
- "nullable": true
1535
- },
1536
- "context_team_id": {
1537
- "type": "string",
1538
- "nullable": true
1539
- },
1540
- "context_enterprise_id": {
1541
- "type": "object",
1542
- "nullable": true
1543
- },
1544
- "api_app_id": {
1545
- "type": "string",
1546
- "nullable": true
1547
- },
1548
- "event": {
1549
- "$ref": "#/components/schemas/event"
1550
- },
1551
- "type": {
1552
- "type": "string",
1553
- "nullable": true
1554
- },
1555
- "event_id": {
1556
- "type": "string",
1557
- "nullable": true
1558
- },
1559
- "event_time": {
1560
- "type": "integer",
1561
- "format": "int32",
1562
- "nullable": true
1563
- },
1564
- "authorizations": {
1565
- "type": "array",
1566
- "items": {
1567
- "$ref": "#/components/schemas/authorization"
1568
- },
1569
- "nullable": true
1570
- },
1571
- "is_ext_shared_channel": {
1572
- "type": "boolean",
1573
- "nullable": true
1574
- },
1575
- "event_context": {
1576
- "type": "string",
1577
- "nullable": true
1578
- }
1579
- }
1580
- },
1581
- "to": {
1582
- "type": "object",
1583
- "properties": {
1584
- "address": {
1585
- "type": "string",
1586
- "nullable": true
1587
- },
1588
- "name": {
1589
- "type": "string",
1590
- "nullable": true
1591
- },
1592
- "original": {
1593
- "type": "string",
1594
- "nullable": true
1595
- }
1596
- }
1597
- },
1598
- "tool": {
1599
- "type": "object",
1600
- "properties": {
1601
- "name": {
1602
- "type": "string",
1603
- "nullable": true
1604
- },
1605
- "description": {
1606
- "type": "string",
1607
- "nullable": true
1608
- },
1609
- "parameters": {
1610
- "$ref": "#/components/schemas/parameters"
1611
- },
1612
- "type": {
1613
- "type": "string",
1614
- "nullable": true
1615
- }
1616
- }
1617
- },
1618
- "turnDetection": {
1619
- "type": "object",
1620
- "properties": {
1621
- "type": {
1622
- "type": "string",
1623
- "nullable": true
1624
- },
1625
- "threshold": {
1626
- "type": "number",
1627
- "format": "double",
1628
- "nullable": true
1629
- },
1630
- "prefix_padding_ms": {
1631
- "type": "integer",
1632
- "format": "int32",
1633
- "nullable": true
1634
- },
1635
- "silence_duration_ms": {
1636
- "type": "integer",
1637
- "format": "int32",
1638
- "nullable": true
1639
- },
1640
- "create_response": {
1641
- "type": "boolean",
1642
- "nullable": true
1643
- },
1644
- "interrupt_response": {
1645
- "type": "boolean",
1646
- "nullable": true
1647
- }
1648
- },
1649
- "nullable": true
1650
- }
1651
- },
1652
- "securitySchemes": {
1653
- "Implicit": {
1654
- "type": "oauth2",
1655
- "flows": {
1656
- "implicit": {
1657
- "authorizationUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/authorize",
1658
- "tokenUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/token",
1659
- "refreshUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/token",
1660
- "scopes": {
1661
- "api://d6cb18a1-4d6c-4d6c-943f-92a97b39e5da/.default": "Default function scope"
1662
- }
1663
- }
1664
- }
1665
- }
1666
- }
1667
- }
1668
- }