feat(sendblue): add Sendblue iMessage/SMS integration with tools and triggers (#4917)

* feat(sendblue): add Sendblue iMessage/SMS integration with tools and triggers

* fix(sendblue): address review — status-aware webhook dedup, shared routing map, uniform output casing, api-key authType

* fix(docs-gen): skip nested array `items` descriptor in tool input tables

* chore(sendblue): use SendblueSendStyle type, trim URL identifiers

* fix(sendblue): keep is_outbound routing map local to the webhook handler

Avoids a webhook-providers -> triggers cross-subgraph import (single source
of truth in the handler, its only runtime consumer).

* fix(sendblue): remove invalid `tags` from block config (belongs on BlockMeta)
This commit is contained in:
Waleed
2026-06-08 19:41:09 -07:00
committed by GitHub
parent 4f00baf6b4
commit a72e35e2f4
28 changed files with 1757 additions and 0 deletions
+15
View File
@@ -2047,6 +2047,21 @@ export function TwilioIcon(props: SVGProps<SVGSVGElement>) {
)
}
export function SendblueIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} viewBox='0 0 72 72' fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
fill='currentColor'
d='M58.5425 5.19973C53.9872 5.19973 50.2944 8.89316 50.2944 13.4492C50.2944 18.0053 53.9872 21.6987 58.5425 21.6987C63.0978 21.6987 66.7906 18.0053 66.7907 13.4492C66.7907 8.89316 63.0978 5.19973 58.5425 5.19973Z'
/>
<path
fill='currentColor'
d='M0.0122017 36C0.0122012 41.6798 4.37038 46.3269 9.92916 46.8072C6.33936 51.07 6.54347 57.4463 10.5535 61.457C14.5635 65.4676 20.9387 65.6718 25.2008 62.0814C25.669 67.6411 30.3274 72 36.0062 72C41.685 72 46.3314 67.6411 46.8116 62.0814C51.0737 65.6718 57.4489 65.4676 61.4589 61.457C65.4689 57.4463 65.673 51.0701 62.0832 46.8072C67.642 46.3389 72.0002 41.6798 72.0002 36C72.0002 30.008 67.1378 25.1448 61.1468 25.1448C60.7266 25.1448 60.3183 25.1808 59.9101 25.2288C59.4659 25.2769 59.0097 25.2889 58.5415 25.2889C56.9927 25.2889 55.5159 24.9887 54.1713 24.4483C51.1458 23.2475 48.7446 20.8339 47.544 17.8199C47.0037 16.463 46.7035 14.986 46.7035 13.449C46.7035 12.9807 46.7155 12.5364 46.7636 12.0801C46.8116 11.6718 46.8476 11.2635 46.8476 10.8553C46.8476 4.86326 41.9852 1.65468e-05 35.9942 1.60229e-05C30.3154 1.55264e-05 25.669 4.35892 25.1888 9.91862C20.9267 6.32823 14.5515 6.53237 10.5415 10.543C6.53146 14.5537 6.32736 20.93 9.91715 25.1928C4.35837 25.6611 0.000195295 30.3202 0.000194799 36L0.0122017 36Z'
/>
</svg>
)
}
export function ImageIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
+2
View File
@@ -167,6 +167,7 @@ import {
SapS4HanaIcon,
SESIcon,
SecretsManagerIcon,
SendblueIcon,
SendgridIcon,
SentryIcon,
SerperIcon,
@@ -392,6 +393,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
sap_concur: SapConcurIcon,
sap_s4hana: SapS4HanaIcon,
secrets_manager: SecretsManagerIcon,
sendblue: SendblueIcon,
sendgrid: SendgridIcon,
sentry: SentryIcon,
serper: SerperIcon,