@bubblelab/bubble-core 0.1.277 → 0.1.279
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.
- package/dist/bubble-bundle.d.ts +178 -157
- package/dist/bubble-factory.d.ts.map +1 -1
- package/dist/bubble-factory.js +3 -0
- package/dist/bubble-factory.js.map +1 -1
- package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
- package/dist/bubbles/service-bubble/ai-agent.d.ts +74 -74
- package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/ai-agent.js +47 -4
- package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
- package/dist/bubbles/service-bubble/airtable.d.ts +76 -76
- package/dist/bubbles/service-bubble/apify/actors/app-rankings-scraper.d.ts +6 -6
- package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
- package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
- package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
- package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts +38 -38
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
- package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
- package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
- package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +132 -132
- package/dist/bubbles/service-bubble/apify/apify.d.ts +18 -18
- package/dist/bubbles/service-bubble/asana/asana.d.ts +1 -1
- package/dist/bubbles/service-bubble/asana/asana.schema.d.ts +1 -1
- package/dist/bubbles/service-bubble/ashby/ashby.d.ts +20 -20
- package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +28 -28
- package/dist/bubbles/service-bubble/assembled/assembled.d.ts +6 -6
- package/dist/bubbles/service-bubble/assembled/assembled.schema.d.ts +6 -6
- package/dist/bubbles/service-bubble/attio/attio.d.ts +6 -6
- package/dist/bubbles/service-bubble/attio/attio.schema.d.ts +6 -6
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +2 -2
- package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +2 -2
- package/dist/bubbles/service-bubble/capability-pipeline.js +1 -1
- package/dist/bubbles/service-bubble/capability-pipeline.js.map +1 -1
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +4 -4
- package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +8 -8
- package/dist/bubbles/service-bubble/discord/discord.d.ts +12 -12
- package/dist/bubbles/service-bubble/discord/discord.schema.d.ts +12 -12
- package/dist/bubbles/service-bubble/firecrawl.d.ts +330 -330
- package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
- package/dist/bubbles/service-bubble/github.d.ts +60 -60
- package/dist/bubbles/service-bubble/gmail.d.ts +164 -164
- package/dist/bubbles/service-bubble/google-calendar.d.ts +6 -6
- package/dist/bubbles/service-bubble/google-drive.d.ts +4 -4
- package/dist/bubbles/service-bubble/http.d.ts +6 -6
- package/dist/bubbles/service-bubble/hubspot/hubspot.d.ts +2 -2
- package/dist/bubbles/service-bubble/hubspot/hubspot.schema.d.ts +2 -2
- package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
- package/dist/bubbles/service-bubble/jira/jira.d.ts +30 -30
- package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
- package/dist/bubbles/service-bubble/metabase/index.d.ts +4 -0
- package/dist/bubbles/service-bubble/metabase/index.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/metabase/index.js +4 -0
- package/dist/bubbles/service-bubble/metabase/index.js.map +1 -0
- package/dist/bubbles/service-bubble/metabase/metabase.d.ts +746 -0
- package/dist/bubbles/service-bubble/metabase/metabase.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/metabase/metabase.js +221 -0
- package/dist/bubbles/service-bubble/metabase/metabase.js.map +1 -0
- package/dist/bubbles/service-bubble/metabase/metabase.schema.d.ts +1125 -0
- package/dist/bubbles/service-bubble/metabase/metabase.schema.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/metabase/metabase.schema.js +222 -0
- package/dist/bubbles/service-bubble/metabase/metabase.schema.js.map +1 -0
- package/dist/bubbles/service-bubble/metabase/metabase.utils.d.ts +15 -0
- package/dist/bubbles/service-bubble/metabase/metabase.utils.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/metabase/metabase.utils.js +32 -0
- package/dist/bubbles/service-bubble/metabase/metabase.utils.js.map +1 -0
- package/dist/bubbles/service-bubble/notion/notion.d.ts +168 -168
- package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +16 -16
- package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
- package/dist/bubbles/service-bubble/posthog/posthog.d.ts +10 -10
- package/dist/bubbles/service-bubble/posthog/posthog.schema.d.ts +14 -14
- package/dist/bubbles/service-bubble/resend.d.ts +12 -12
- package/dist/bubbles/service-bubble/slack/slack.d.ts +392 -392
- package/dist/bubbles/service-bubble/snowflake/snowflake.d.ts +4 -4
- package/dist/bubbles/service-bubble/snowflake/snowflake.schema.d.ts +4 -4
- package/dist/bubbles/service-bubble/sortly/sortly.d.ts +36 -36
- package/dist/bubbles/service-bubble/sortly/sortly.schema.d.ts +40 -40
- package/dist/bubbles/service-bubble/stripe/stripe.d.ts +24 -24
- package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
- package/dist/bubbles/service-bubble/xero/xero.d.ts +2 -2
- package/dist/bubbles/service-bubble/xero/xero.schema.d.ts +2 -2
- package/dist/bubbles/service-bubble/zendesk/zendesk.d.ts +166 -20
- package/dist/bubbles/service-bubble/zendesk/zendesk.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/zendesk/zendesk.js +105 -11
- package/dist/bubbles/service-bubble/zendesk/zendesk.js.map +1 -1
- package/dist/bubbles/service-bubble/zendesk/zendesk.schema.d.ts +163 -20
- package/dist/bubbles/service-bubble/zendesk/zendesk.schema.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/zendesk/zendesk.schema.js +57 -0
- package/dist/bubbles/service-bubble/zendesk/zendesk.schema.js.map +1 -1
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +6 -6
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
- package/dist/bubbles/tool-bubble/app-rankings-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +20 -20
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +384 -384
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts +44 -44
- package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +60 -60
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +134 -134
- package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
- package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +12 -12
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +8 -8
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +34 -34
- package/dist/bubbles.json +675 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -82,6 +82,7 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
82
82
|
value: string | number | boolean | string[] | null;
|
|
83
83
|
id: number;
|
|
84
84
|
}>, "many">>;
|
|
85
|
+
uploads: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
85
86
|
credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
|
|
86
87
|
}, "strip", import("zod").ZodTypeAny, {
|
|
87
88
|
operation: "create_ticket";
|
|
@@ -89,8 +90,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
89
90
|
subject: string;
|
|
90
91
|
type?: "question" | "task" | "problem" | "incident" | undefined;
|
|
91
92
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
92
|
-
tags?: string[] | undefined;
|
|
93
93
|
priority?: "low" | "high" | "urgent" | "normal" | undefined;
|
|
94
|
+
tags?: string[] | undefined;
|
|
94
95
|
custom_fields?: {
|
|
95
96
|
value: string | number | boolean | string[] | null;
|
|
96
97
|
id: number;
|
|
@@ -98,14 +99,15 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
98
99
|
requester_email?: string | undefined;
|
|
99
100
|
requester_name?: string | undefined;
|
|
100
101
|
assignee_id?: number | undefined;
|
|
102
|
+
uploads?: string[] | undefined;
|
|
101
103
|
}, {
|
|
102
104
|
operation: "create_ticket";
|
|
103
105
|
body: string;
|
|
104
106
|
subject: string;
|
|
105
107
|
type?: "question" | "task" | "problem" | "incident" | undefined;
|
|
106
108
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
107
|
-
tags?: string[] | undefined;
|
|
108
109
|
priority?: "low" | "high" | "urgent" | "normal" | undefined;
|
|
110
|
+
tags?: string[] | undefined;
|
|
109
111
|
custom_fields?: {
|
|
110
112
|
value: string | number | boolean | string[] | null;
|
|
111
113
|
id: number;
|
|
@@ -113,6 +115,7 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
113
115
|
requester_email?: string | undefined;
|
|
114
116
|
requester_name?: string | undefined;
|
|
115
117
|
assignee_id?: number | undefined;
|
|
118
|
+
uploads?: string[] | undefined;
|
|
116
119
|
}>, import("zod").ZodObject<{
|
|
117
120
|
operation: import("zod").ZodLiteral<"update_ticket">;
|
|
118
121
|
ticket_id: import("zod").ZodString;
|
|
@@ -132,6 +135,7 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
132
135
|
value: string | number | boolean | string[] | null;
|
|
133
136
|
id: number;
|
|
134
137
|
}>, "many">>;
|
|
138
|
+
uploads: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
135
139
|
credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
|
|
136
140
|
}, "strip", import("zod").ZodTypeAny, {
|
|
137
141
|
operation: "update_ticket";
|
|
@@ -139,21 +143,22 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
139
143
|
ticket_id: string;
|
|
140
144
|
status?: "pending" | "open" | "closed" | "new" | "hold" | "solved" | undefined;
|
|
141
145
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
142
|
-
tags?: string[] | undefined;
|
|
143
146
|
priority?: "low" | "high" | "urgent" | "normal" | undefined;
|
|
147
|
+
tags?: string[] | undefined;
|
|
144
148
|
comment?: string | undefined;
|
|
145
149
|
custom_fields?: {
|
|
146
150
|
value: string | number | boolean | string[] | null;
|
|
147
151
|
id: number;
|
|
148
152
|
}[] | undefined;
|
|
149
153
|
assignee_id?: number | undefined;
|
|
154
|
+
uploads?: string[] | undefined;
|
|
150
155
|
}, {
|
|
151
156
|
operation: "update_ticket";
|
|
152
157
|
ticket_id: string;
|
|
153
158
|
status?: "pending" | "open" | "closed" | "new" | "hold" | "solved" | undefined;
|
|
154
159
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
155
|
-
tags?: string[] | undefined;
|
|
156
160
|
priority?: "low" | "high" | "urgent" | "normal" | undefined;
|
|
161
|
+
tags?: string[] | undefined;
|
|
157
162
|
public?: boolean | undefined;
|
|
158
163
|
comment?: string | undefined;
|
|
159
164
|
custom_fields?: {
|
|
@@ -161,6 +166,7 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
161
166
|
id: number;
|
|
162
167
|
}[] | undefined;
|
|
163
168
|
assignee_id?: number | undefined;
|
|
169
|
+
uploads?: string[] | undefined;
|
|
164
170
|
}>, import("zod").ZodObject<{
|
|
165
171
|
operation: import("zod").ZodLiteral<"list_ticket_comments">;
|
|
166
172
|
ticket_id: import("zod").ZodString;
|
|
@@ -588,6 +594,24 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
588
594
|
page?: number | undefined;
|
|
589
595
|
per_page?: number | undefined;
|
|
590
596
|
active?: boolean | undefined;
|
|
597
|
+
}>, import("zod").ZodObject<{
|
|
598
|
+
operation: import("zod").ZodLiteral<"upload_attachment">;
|
|
599
|
+
filename: import("zod").ZodString;
|
|
600
|
+
content: import("zod").ZodString;
|
|
601
|
+
content_type: import("zod").ZodOptional<import("zod").ZodString>;
|
|
602
|
+
credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
|
|
603
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
604
|
+
content: string;
|
|
605
|
+
operation: "upload_attachment";
|
|
606
|
+
filename: string;
|
|
607
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
608
|
+
content_type?: string | undefined;
|
|
609
|
+
}, {
|
|
610
|
+
content: string;
|
|
611
|
+
operation: "upload_attachment";
|
|
612
|
+
filename: string;
|
|
613
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
614
|
+
content_type?: string | undefined;
|
|
591
615
|
}>]>;
|
|
592
616
|
static readonly resultSchema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
|
|
593
617
|
operation: import("zod").ZodLiteral<"list_tickets">;
|
|
@@ -620,8 +644,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
620
644
|
type?: string | null | undefined;
|
|
621
645
|
description?: string | undefined;
|
|
622
646
|
status?: string | undefined;
|
|
623
|
-
tags?: string[] | undefined;
|
|
624
647
|
priority?: string | null | undefined;
|
|
648
|
+
tags?: string[] | undefined;
|
|
625
649
|
subject?: string | undefined;
|
|
626
650
|
created_at?: string | undefined;
|
|
627
651
|
updated_at?: string | undefined;
|
|
@@ -637,8 +661,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
637
661
|
type?: string | null | undefined;
|
|
638
662
|
description?: string | undefined;
|
|
639
663
|
status?: string | undefined;
|
|
640
|
-
tags?: string[] | undefined;
|
|
641
664
|
priority?: string | null | undefined;
|
|
665
|
+
tags?: string[] | undefined;
|
|
642
666
|
subject?: string | undefined;
|
|
643
667
|
created_at?: string | undefined;
|
|
644
668
|
updated_at?: string | undefined;
|
|
@@ -663,8 +687,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
663
687
|
type?: string | null | undefined;
|
|
664
688
|
description?: string | undefined;
|
|
665
689
|
status?: string | undefined;
|
|
666
|
-
tags?: string[] | undefined;
|
|
667
690
|
priority?: string | null | undefined;
|
|
691
|
+
tags?: string[] | undefined;
|
|
668
692
|
subject?: string | undefined;
|
|
669
693
|
created_at?: string | undefined;
|
|
670
694
|
updated_at?: string | undefined;
|
|
@@ -687,8 +711,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
687
711
|
type?: string | null | undefined;
|
|
688
712
|
description?: string | undefined;
|
|
689
713
|
status?: string | undefined;
|
|
690
|
-
tags?: string[] | undefined;
|
|
691
714
|
priority?: string | null | undefined;
|
|
715
|
+
tags?: string[] | undefined;
|
|
692
716
|
subject?: string | undefined;
|
|
693
717
|
created_at?: string | undefined;
|
|
694
718
|
updated_at?: string | undefined;
|
|
@@ -732,8 +756,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
732
756
|
type?: string | null | undefined;
|
|
733
757
|
description?: string | undefined;
|
|
734
758
|
status?: string | undefined;
|
|
735
|
-
tags?: string[] | undefined;
|
|
736
759
|
priority?: string | null | undefined;
|
|
760
|
+
tags?: string[] | undefined;
|
|
737
761
|
subject?: string | undefined;
|
|
738
762
|
created_at?: string | undefined;
|
|
739
763
|
updated_at?: string | undefined;
|
|
@@ -749,8 +773,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
749
773
|
type?: string | null | undefined;
|
|
750
774
|
description?: string | undefined;
|
|
751
775
|
status?: string | undefined;
|
|
752
|
-
tags?: string[] | undefined;
|
|
753
776
|
priority?: string | null | undefined;
|
|
777
|
+
tags?: string[] | undefined;
|
|
754
778
|
subject?: string | undefined;
|
|
755
779
|
created_at?: string | undefined;
|
|
756
780
|
updated_at?: string | undefined;
|
|
@@ -772,8 +796,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
772
796
|
type?: string | null | undefined;
|
|
773
797
|
description?: string | undefined;
|
|
774
798
|
status?: string | undefined;
|
|
775
|
-
tags?: string[] | undefined;
|
|
776
799
|
priority?: string | null | undefined;
|
|
800
|
+
tags?: string[] | undefined;
|
|
777
801
|
subject?: string | undefined;
|
|
778
802
|
created_at?: string | undefined;
|
|
779
803
|
updated_at?: string | undefined;
|
|
@@ -794,8 +818,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
794
818
|
type?: string | null | undefined;
|
|
795
819
|
description?: string | undefined;
|
|
796
820
|
status?: string | undefined;
|
|
797
|
-
tags?: string[] | undefined;
|
|
798
821
|
priority?: string | null | undefined;
|
|
822
|
+
tags?: string[] | undefined;
|
|
799
823
|
subject?: string | undefined;
|
|
800
824
|
created_at?: string | undefined;
|
|
801
825
|
updated_at?: string | undefined;
|
|
@@ -838,8 +862,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
838
862
|
type?: string | null | undefined;
|
|
839
863
|
description?: string | undefined;
|
|
840
864
|
status?: string | undefined;
|
|
841
|
-
tags?: string[] | undefined;
|
|
842
865
|
priority?: string | null | undefined;
|
|
866
|
+
tags?: string[] | undefined;
|
|
843
867
|
subject?: string | undefined;
|
|
844
868
|
created_at?: string | undefined;
|
|
845
869
|
updated_at?: string | undefined;
|
|
@@ -855,8 +879,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
855
879
|
type?: string | null | undefined;
|
|
856
880
|
description?: string | undefined;
|
|
857
881
|
status?: string | undefined;
|
|
858
|
-
tags?: string[] | undefined;
|
|
859
882
|
priority?: string | null | undefined;
|
|
883
|
+
tags?: string[] | undefined;
|
|
860
884
|
subject?: string | undefined;
|
|
861
885
|
created_at?: string | undefined;
|
|
862
886
|
updated_at?: string | undefined;
|
|
@@ -878,8 +902,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
878
902
|
type?: string | null | undefined;
|
|
879
903
|
description?: string | undefined;
|
|
880
904
|
status?: string | undefined;
|
|
881
|
-
tags?: string[] | undefined;
|
|
882
905
|
priority?: string | null | undefined;
|
|
906
|
+
tags?: string[] | undefined;
|
|
883
907
|
subject?: string | undefined;
|
|
884
908
|
created_at?: string | undefined;
|
|
885
909
|
updated_at?: string | undefined;
|
|
@@ -900,8 +924,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
900
924
|
type?: string | null | undefined;
|
|
901
925
|
description?: string | undefined;
|
|
902
926
|
status?: string | undefined;
|
|
903
|
-
tags?: string[] | undefined;
|
|
904
927
|
priority?: string | null | undefined;
|
|
928
|
+
tags?: string[] | undefined;
|
|
905
929
|
subject?: string | undefined;
|
|
906
930
|
created_at?: string | undefined;
|
|
907
931
|
updated_at?: string | undefined;
|
|
@@ -944,8 +968,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
944
968
|
type?: string | null | undefined;
|
|
945
969
|
description?: string | undefined;
|
|
946
970
|
status?: string | undefined;
|
|
947
|
-
tags?: string[] | undefined;
|
|
948
971
|
priority?: string | null | undefined;
|
|
972
|
+
tags?: string[] | undefined;
|
|
949
973
|
subject?: string | undefined;
|
|
950
974
|
created_at?: string | undefined;
|
|
951
975
|
updated_at?: string | undefined;
|
|
@@ -961,8 +985,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
961
985
|
type?: string | null | undefined;
|
|
962
986
|
description?: string | undefined;
|
|
963
987
|
status?: string | undefined;
|
|
964
|
-
tags?: string[] | undefined;
|
|
965
988
|
priority?: string | null | undefined;
|
|
989
|
+
tags?: string[] | undefined;
|
|
966
990
|
subject?: string | undefined;
|
|
967
991
|
created_at?: string | undefined;
|
|
968
992
|
updated_at?: string | undefined;
|
|
@@ -984,8 +1008,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
984
1008
|
type?: string | null | undefined;
|
|
985
1009
|
description?: string | undefined;
|
|
986
1010
|
status?: string | undefined;
|
|
987
|
-
tags?: string[] | undefined;
|
|
988
1011
|
priority?: string | null | undefined;
|
|
1012
|
+
tags?: string[] | undefined;
|
|
989
1013
|
subject?: string | undefined;
|
|
990
1014
|
created_at?: string | undefined;
|
|
991
1015
|
updated_at?: string | undefined;
|
|
@@ -1006,8 +1030,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
1006
1030
|
type?: string | null | undefined;
|
|
1007
1031
|
description?: string | undefined;
|
|
1008
1032
|
status?: string | undefined;
|
|
1009
|
-
tags?: string[] | undefined;
|
|
1010
1033
|
priority?: string | null | undefined;
|
|
1034
|
+
tags?: string[] | undefined;
|
|
1011
1035
|
subject?: string | undefined;
|
|
1012
1036
|
created_at?: string | undefined;
|
|
1013
1037
|
updated_at?: string | undefined;
|
|
@@ -1028,9 +1052,35 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
1028
1052
|
html_body: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1029
1053
|
public: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
1030
1054
|
author_id: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
1055
|
+
attachments: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
1056
|
+
id: import("zod").ZodNumber;
|
|
1057
|
+
file_name: import("zod").ZodString;
|
|
1058
|
+
content_url: import("zod").ZodString;
|
|
1059
|
+
content_type: import("zod").ZodString;
|
|
1060
|
+
size: import("zod").ZodNumber;
|
|
1061
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
1062
|
+
id: number;
|
|
1063
|
+
size: number;
|
|
1064
|
+
file_name: string;
|
|
1065
|
+
content_type: string;
|
|
1066
|
+
content_url: string;
|
|
1067
|
+
}, {
|
|
1068
|
+
id: number;
|
|
1069
|
+
size: number;
|
|
1070
|
+
file_name: string;
|
|
1071
|
+
content_type: string;
|
|
1072
|
+
content_url: string;
|
|
1073
|
+
}>, "many">>;
|
|
1031
1074
|
created_at: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1032
1075
|
}, "strip", import("zod").ZodTypeAny, {
|
|
1033
1076
|
id: number;
|
|
1077
|
+
attachments?: {
|
|
1078
|
+
id: number;
|
|
1079
|
+
size: number;
|
|
1080
|
+
file_name: string;
|
|
1081
|
+
content_type: string;
|
|
1082
|
+
content_url: string;
|
|
1083
|
+
}[] | undefined;
|
|
1034
1084
|
public?: boolean | undefined;
|
|
1035
1085
|
body?: string | undefined;
|
|
1036
1086
|
created_at?: string | undefined;
|
|
@@ -1038,6 +1088,13 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
1038
1088
|
author_id?: number | undefined;
|
|
1039
1089
|
}, {
|
|
1040
1090
|
id: number;
|
|
1091
|
+
attachments?: {
|
|
1092
|
+
id: number;
|
|
1093
|
+
size: number;
|
|
1094
|
+
file_name: string;
|
|
1095
|
+
content_type: string;
|
|
1096
|
+
content_url: string;
|
|
1097
|
+
}[] | undefined;
|
|
1041
1098
|
public?: boolean | undefined;
|
|
1042
1099
|
body?: string | undefined;
|
|
1043
1100
|
created_at?: string | undefined;
|
|
@@ -1054,6 +1111,13 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
1054
1111
|
count?: number | undefined;
|
|
1055
1112
|
comments?: {
|
|
1056
1113
|
id: number;
|
|
1114
|
+
attachments?: {
|
|
1115
|
+
id: number;
|
|
1116
|
+
size: number;
|
|
1117
|
+
file_name: string;
|
|
1118
|
+
content_type: string;
|
|
1119
|
+
content_url: string;
|
|
1120
|
+
}[] | undefined;
|
|
1057
1121
|
public?: boolean | undefined;
|
|
1058
1122
|
body?: string | undefined;
|
|
1059
1123
|
created_at?: string | undefined;
|
|
@@ -1068,6 +1132,13 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
1068
1132
|
count?: number | undefined;
|
|
1069
1133
|
comments?: {
|
|
1070
1134
|
id: number;
|
|
1135
|
+
attachments?: {
|
|
1136
|
+
id: number;
|
|
1137
|
+
size: number;
|
|
1138
|
+
file_name: string;
|
|
1139
|
+
content_type: string;
|
|
1140
|
+
content_url: string;
|
|
1141
|
+
}[] | undefined;
|
|
1071
1142
|
public?: boolean | undefined;
|
|
1072
1143
|
body?: string | undefined;
|
|
1073
1144
|
created_at?: string | undefined;
|
|
@@ -2237,6 +2308,78 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
2237
2308
|
ids?: number[] | undefined;
|
|
2238
2309
|
} | null | undefined;
|
|
2239
2310
|
}[] | undefined;
|
|
2311
|
+
}>, import("zod").ZodObject<{
|
|
2312
|
+
operation: import("zod").ZodLiteral<"upload_attachment">;
|
|
2313
|
+
success: import("zod").ZodBoolean;
|
|
2314
|
+
upload: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
2315
|
+
token: import("zod").ZodString;
|
|
2316
|
+
attachment: import("zod").ZodObject<{
|
|
2317
|
+
id: import("zod").ZodNumber;
|
|
2318
|
+
file_name: import("zod").ZodString;
|
|
2319
|
+
content_url: import("zod").ZodString;
|
|
2320
|
+
size: import("zod").ZodNumber;
|
|
2321
|
+
content_type: import("zod").ZodString;
|
|
2322
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
2323
|
+
id: number;
|
|
2324
|
+
size: number;
|
|
2325
|
+
file_name: string;
|
|
2326
|
+
content_type: string;
|
|
2327
|
+
content_url: string;
|
|
2328
|
+
}, {
|
|
2329
|
+
id: number;
|
|
2330
|
+
size: number;
|
|
2331
|
+
file_name: string;
|
|
2332
|
+
content_type: string;
|
|
2333
|
+
content_url: string;
|
|
2334
|
+
}>;
|
|
2335
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
2336
|
+
token: string;
|
|
2337
|
+
attachment: {
|
|
2338
|
+
id: number;
|
|
2339
|
+
size: number;
|
|
2340
|
+
file_name: string;
|
|
2341
|
+
content_type: string;
|
|
2342
|
+
content_url: string;
|
|
2343
|
+
};
|
|
2344
|
+
}, {
|
|
2345
|
+
token: string;
|
|
2346
|
+
attachment: {
|
|
2347
|
+
id: number;
|
|
2348
|
+
size: number;
|
|
2349
|
+
file_name: string;
|
|
2350
|
+
content_type: string;
|
|
2351
|
+
content_url: string;
|
|
2352
|
+
};
|
|
2353
|
+
}>>;
|
|
2354
|
+
error: import("zod").ZodString;
|
|
2355
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
2356
|
+
error: string;
|
|
2357
|
+
success: boolean;
|
|
2358
|
+
operation: "upload_attachment";
|
|
2359
|
+
upload?: {
|
|
2360
|
+
token: string;
|
|
2361
|
+
attachment: {
|
|
2362
|
+
id: number;
|
|
2363
|
+
size: number;
|
|
2364
|
+
file_name: string;
|
|
2365
|
+
content_type: string;
|
|
2366
|
+
content_url: string;
|
|
2367
|
+
};
|
|
2368
|
+
} | undefined;
|
|
2369
|
+
}, {
|
|
2370
|
+
error: string;
|
|
2371
|
+
success: boolean;
|
|
2372
|
+
operation: "upload_attachment";
|
|
2373
|
+
upload?: {
|
|
2374
|
+
token: string;
|
|
2375
|
+
attachment: {
|
|
2376
|
+
id: number;
|
|
2377
|
+
size: number;
|
|
2378
|
+
file_name: string;
|
|
2379
|
+
content_type: string;
|
|
2380
|
+
content_url: string;
|
|
2381
|
+
};
|
|
2382
|
+
} | undefined;
|
|
2240
2383
|
}>]>;
|
|
2241
2384
|
static readonly shortDescription = "Zendesk integration for tickets, comments, users, and help center";
|
|
2242
2385
|
static readonly longDescription = "\n Zendesk customer support integration for ticket management and help center.\n\n Features:\n - Create, retrieve, update, and list support tickets\n - List ticket comments and add replies (public or internal notes)\n - List and retrieve users and organizations\n - Unified search across tickets, users, and organizations\n - Help Center article listing and retrieval\n\n Use cases:\n - Automated ticket triage and response\n - Customer support workflow automation\n - Help center content management\n - Support analytics and reporting\n\n Security Features:\n - OAuth 2.0 authentication with Zendesk\n - Subdomain-scoped API access\n - Secure credential handling and validation\n ";
|
|
@@ -2276,6 +2419,9 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
|
|
|
2276
2419
|
private updateMacro;
|
|
2277
2420
|
private deleteMacro;
|
|
2278
2421
|
private searchMacros;
|
|
2422
|
+
private static readonly MIME_TYPES;
|
|
2423
|
+
private inferContentType;
|
|
2424
|
+
private uploadAttachment;
|
|
2279
2425
|
private mapTicket;
|
|
2280
2426
|
private mapComment;
|
|
2281
2427
|
private mapUser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zendesk.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/zendesk/zendesk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAa,CACxB,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CACjD,SAAQ,aAAa,CACrB,CAAC,EACD,OAAO,CAAC,aAAa,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CACtD;IACC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,aAAa;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM
|
|
1
|
+
{"version":3,"file":"zendesk.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/zendesk/zendesk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAa,CACxB,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CACjD,SAAQ,aAAa,CACrB,CAAC,EACD,OAAO,CAAC,aAAa,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CACtD;IACC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,aAAa;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAuB;IAC7C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAuB;IACnD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,uEACsC;IACtE,MAAM,CAAC,QAAQ,CAAC,eAAe,guBAoB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,aAAa;gBAGhC,MAAM,GAAE,CAEF,EACN,OAAO,CAAC,EAAE,aAAa;IAKZ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAsB/C;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAqCxB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;YAKlC,qBAAqB;cAmDnB,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAC;YA8KnD,WAAW;YAyCX,SAAS;YAeT,YAAY;YA2CZ,YAAY;YAsCZ,gBAAgB;YA8BhB,iBAAiB;YA2CjB,iBAAiB;YAiBjB,kBAAkB;YAwBlB,SAAS;YAuCT,OAAO;YAiBP,iBAAiB;YAqCjB,eAAe;YAiBf,MAAM;YA2BN,YAAY;YAmDZ,UAAU;YAmBV,UAAU;YAoCV,QAAQ;YAeR,UAAU;YA0BV,WAAW;YAyBX,WAAW;YAyBX,WAAW;YAeX,YAAY;IA0B1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAwBhC;IAEF,OAAO,CAAC,gBAAgB;YASV,gBAAgB;IAkD9B,OAAO,CAAC,SAAS,CAcd;IAEH,OAAO,CAAC,UAAU,CAcf;IAEH,OAAO,CAAC,OAAO,CAQZ;IAEH,OAAO,CAAC,eAAe,CAMpB;IAEH,OAAO,CAAC,QAAQ,CASb;IAEH,OAAO,CAAC,UAAU,CAUf;CACJ"}
|
|
@@ -103,7 +103,7 @@ export class ZendeskBubble extends ServiceBubble {
|
|
|
103
103
|
const creds = this.parseCredentials();
|
|
104
104
|
return creds?.accessToken;
|
|
105
105
|
}
|
|
106
|
-
async makeZendeskApiRequest(endpoint, method = 'GET', body) {
|
|
106
|
+
async makeZendeskApiRequest(endpoint, method = 'GET', body, options) {
|
|
107
107
|
const creds = this.parseCredentials();
|
|
108
108
|
if (!creds) {
|
|
109
109
|
throw new Error('Invalid Zendesk credentials. Expected base64-encoded JSON with { accessToken, subdomain }.');
|
|
@@ -111,17 +111,23 @@ export class ZendeskBubble extends ServiceBubble {
|
|
|
111
111
|
const url = endpoint.startsWith('https://')
|
|
112
112
|
? endpoint
|
|
113
113
|
: `https://${creds.subdomain}.zendesk.com${endpoint}`;
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
Authorization: `Bearer ${creds.accessToken}`,
|
|
118
|
-
'Content-Type': 'application/json',
|
|
119
|
-
Accept: 'application/json',
|
|
120
|
-
},
|
|
114
|
+
const headers = {
|
|
115
|
+
Authorization: `Bearer ${creds.accessToken}`,
|
|
116
|
+
Accept: 'application/json',
|
|
121
117
|
};
|
|
122
|
-
|
|
123
|
-
|
|
118
|
+
const requestInit = { method };
|
|
119
|
+
if (options?.binary) {
|
|
120
|
+
headers['Content-Type'] =
|
|
121
|
+
options.contentType ?? 'application/octet-stream';
|
|
122
|
+
requestInit.body = options.binary;
|
|
124
123
|
}
|
|
124
|
+
else {
|
|
125
|
+
headers['Content-Type'] = 'application/json';
|
|
126
|
+
if (body && method !== 'GET') {
|
|
127
|
+
requestInit.body = JSON.stringify(body);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
requestInit.headers = headers;
|
|
125
131
|
const response = await fetch(url, requestInit);
|
|
126
132
|
if (!response.ok) {
|
|
127
133
|
const errorText = await response.text();
|
|
@@ -184,6 +190,8 @@ export class ZendeskBubble extends ServiceBubble {
|
|
|
184
190
|
return await this.deleteMacro(parsedParams);
|
|
185
191
|
case 'search_macros':
|
|
186
192
|
return await this.searchMacros(parsedParams);
|
|
193
|
+
case 'upload_attachment':
|
|
194
|
+
return await this.uploadAttachment(parsedParams);
|
|
187
195
|
default:
|
|
188
196
|
throw new Error(`Unsupported operation: ${operation}`);
|
|
189
197
|
}
|
|
@@ -248,7 +256,10 @@ export class ZendeskBubble extends ServiceBubble {
|
|
|
248
256
|
async createTicket(params) {
|
|
249
257
|
const ticketBody = {
|
|
250
258
|
subject: params.subject,
|
|
251
|
-
comment: {
|
|
259
|
+
comment: {
|
|
260
|
+
body: params.body,
|
|
261
|
+
...(params.uploads?.length ? { uploads: params.uploads } : {}),
|
|
262
|
+
},
|
|
252
263
|
};
|
|
253
264
|
if (params.requester_email) {
|
|
254
265
|
const requester = {
|
|
@@ -287,6 +298,14 @@ export class ZendeskBubble extends ServiceBubble {
|
|
|
287
298
|
ticketBody.comment = {
|
|
288
299
|
body: params.comment,
|
|
289
300
|
public: params.public ?? true,
|
|
301
|
+
...(params.uploads?.length ? { uploads: params.uploads } : {}),
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
else if (params.uploads?.length) {
|
|
305
|
+
ticketBody.comment = {
|
|
306
|
+
body: '',
|
|
307
|
+
public: params.public ?? true,
|
|
308
|
+
uploads: params.uploads,
|
|
290
309
|
};
|
|
291
310
|
}
|
|
292
311
|
if (params.status)
|
|
@@ -702,6 +721,74 @@ export class ZendeskBubble extends ServiceBubble {
|
|
|
702
721
|
error: '',
|
|
703
722
|
};
|
|
704
723
|
}
|
|
724
|
+
static MIME_TYPES = {
|
|
725
|
+
pdf: 'application/pdf',
|
|
726
|
+
doc: 'application/msword',
|
|
727
|
+
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
728
|
+
xls: 'application/vnd.ms-excel',
|
|
729
|
+
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
730
|
+
ppt: 'application/vnd.ms-powerpoint',
|
|
731
|
+
pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
|
732
|
+
csv: 'text/csv',
|
|
733
|
+
txt: 'text/plain',
|
|
734
|
+
html: 'text/html',
|
|
735
|
+
htm: 'text/html',
|
|
736
|
+
json: 'application/json',
|
|
737
|
+
xml: 'application/xml',
|
|
738
|
+
zip: 'application/zip',
|
|
739
|
+
png: 'image/png',
|
|
740
|
+
jpg: 'image/jpeg',
|
|
741
|
+
jpeg: 'image/jpeg',
|
|
742
|
+
gif: 'image/gif',
|
|
743
|
+
svg: 'image/svg+xml',
|
|
744
|
+
webp: 'image/webp',
|
|
745
|
+
mp4: 'video/mp4',
|
|
746
|
+
mp3: 'audio/mpeg',
|
|
747
|
+
wav: 'audio/wav',
|
|
748
|
+
};
|
|
749
|
+
inferContentType(filename, explicit) {
|
|
750
|
+
if (explicit)
|
|
751
|
+
return explicit;
|
|
752
|
+
const ext = filename.split('.').pop()?.toLowerCase();
|
|
753
|
+
if (ext && ext in ZendeskBubble.MIME_TYPES) {
|
|
754
|
+
return ZendeskBubble.MIME_TYPES[ext];
|
|
755
|
+
}
|
|
756
|
+
return 'application/octet-stream';
|
|
757
|
+
}
|
|
758
|
+
async uploadAttachment(params) {
|
|
759
|
+
const { filename, content, content_type } = params;
|
|
760
|
+
let fileBuffer = Buffer.from(content, 'base64');
|
|
761
|
+
const resolvedContentType = this.inferContentType(filename, content_type);
|
|
762
|
+
// Strip UTF-8 BOM if present — Zendesk rejects text files with BOM
|
|
763
|
+
// as "file type and file extension do not match"
|
|
764
|
+
if (resolvedContentType.startsWith('text/') &&
|
|
765
|
+
fileBuffer.length >= 3 &&
|
|
766
|
+
fileBuffer[0] === 0xef &&
|
|
767
|
+
fileBuffer[1] === 0xbb &&
|
|
768
|
+
fileBuffer[2] === 0xbf) {
|
|
769
|
+
fileBuffer = fileBuffer.subarray(3);
|
|
770
|
+
}
|
|
771
|
+
const response = await this.makeZendeskApiRequest(`/api/v2/uploads.json?filename=${encodeURIComponent(filename)}`, 'POST', undefined, {
|
|
772
|
+
binary: fileBuffer,
|
|
773
|
+
contentType: resolvedContentType,
|
|
774
|
+
});
|
|
775
|
+
const upload = response.upload;
|
|
776
|
+
return {
|
|
777
|
+
operation: 'upload_attachment',
|
|
778
|
+
success: true,
|
|
779
|
+
upload: {
|
|
780
|
+
token: upload.token,
|
|
781
|
+
attachment: {
|
|
782
|
+
id: upload.attachment.id,
|
|
783
|
+
file_name: upload.attachment.file_name,
|
|
784
|
+
content_url: upload.attachment.content_url,
|
|
785
|
+
size: upload.attachment.size,
|
|
786
|
+
content_type: upload.attachment.content_type,
|
|
787
|
+
},
|
|
788
|
+
},
|
|
789
|
+
error: '',
|
|
790
|
+
};
|
|
791
|
+
}
|
|
705
792
|
// ---- Mappers ----
|
|
706
793
|
mapTicket = (t) => ({
|
|
707
794
|
id: t.id,
|
|
@@ -724,6 +811,13 @@ export class ZendeskBubble extends ServiceBubble {
|
|
|
724
811
|
html_body: c.html_body,
|
|
725
812
|
public: c.public,
|
|
726
813
|
author_id: c.author_id,
|
|
814
|
+
attachments: (c.attachments || []).map((a) => ({
|
|
815
|
+
id: a.id,
|
|
816
|
+
file_name: a.file_name,
|
|
817
|
+
content_url: a.content_url,
|
|
818
|
+
content_type: a.content_type,
|
|
819
|
+
size: a.size,
|
|
820
|
+
})),
|
|
727
821
|
created_at: c.created_at,
|
|
728
822
|
});
|
|
729
823
|
mapUser = (u) => ({
|