diff --git a/apps/builder/assets/logos/PabblyConnectLogo.tsx b/apps/builder/assets/logos/PabblyConnectLogo.tsx new file mode 100644 index 00000000000..12228f5527a --- /dev/null +++ b/apps/builder/assets/logos/PabblyConnectLogo.tsx @@ -0,0 +1,27 @@ +import { Icon, IconProps } from '@chakra-ui/react' + +export const PabblyConnectLogo = (props: IconProps) => ( + + + + + + + + + +) diff --git a/apps/builder/assets/logos/index.tsx b/apps/builder/assets/logos/index.tsx index b1bc69e3b4d..e582658dd6e 100644 --- a/apps/builder/assets/logos/index.tsx +++ b/apps/builder/assets/logos/index.tsx @@ -16,3 +16,4 @@ export * from './GoogleLogo' export * from './FacebookLogo' export * from './ZapierLogo' export * from './MakeComLogo' +export * from './PabblyConnectLogo' diff --git a/apps/builder/components/editor/StepsSideBar/StepIcon.tsx b/apps/builder/components/editor/StepsSideBar/StepIcon.tsx index 9ece6b859f7..351e5078265 100644 --- a/apps/builder/components/editor/StepsSideBar/StepIcon.tsx +++ b/apps/builder/components/editor/StepsSideBar/StepIcon.tsx @@ -24,6 +24,7 @@ import { GoogleAnalyticsLogo, GoogleSheetsLogo, MakeComLogo, + PabblyConnectLogo, ZapierLogo, } from 'assets/logos' import { @@ -81,6 +82,8 @@ export const StepIcon = ({ type, ...props }: StepIconProps) => { return case IntegrationStepType.MAKE_COM: return + case IntegrationStepType.PABBLY_CONNECT: + return case IntegrationStepType.EMAIL: return case 'start': diff --git a/apps/builder/components/editor/StepsSideBar/StepTypeLabel.tsx b/apps/builder/components/editor/StepsSideBar/StepTypeLabel.tsx index 027d4aac52c..414408b2594 100644 --- a/apps/builder/components/editor/StepsSideBar/StepTypeLabel.tsx +++ b/apps/builder/components/editor/StepsSideBar/StepTypeLabel.tsx @@ -73,6 +73,8 @@ export const StepTypeLabel = ({ type }: Props) => { return Zapier case IntegrationStepType.MAKE_COM: return Make.com + case IntegrationStepType.PABBLY_CONNECT: + return Pabbly case IntegrationStepType.EMAIL: return Email default: diff --git a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/SettingsPopoverContent.tsx b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/SettingsPopoverContent.tsx index bd4d726bfca..b55bf42da8b 100644 --- a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/SettingsPopoverContent.tsx +++ b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/SettingsPopoverContent.tsx @@ -224,6 +224,18 @@ export const StepSettings = ({ /> ) } + case IntegrationStepType.PABBLY_CONNECT: { + return ( + + ) + } case IntegrationStepType.WEBHOOK: { return ( diff --git a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WebhookSettings/WebhookSettings.tsx b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WebhookSettings/WebhookSettings.tsx index e8346878c99..87ed696096f 100644 --- a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WebhookSettings/WebhookSettings.tsx +++ b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WebhookSettings/WebhookSettings.tsx @@ -27,6 +27,7 @@ import { defaultWebhookAttributes, Webhook, MakeComStep, + PabblyConnectStep, } from 'models' import { DropdownList } from 'components/shared/DropdownList' import { TableList, TableListItemProps } from 'components/shared/TableList' @@ -44,11 +45,11 @@ import { SwitchWithLabel } from 'components/shared/SwitchWithLabel' import { ExternalLinkIcon } from 'assets/icons' type Provider = { - name: 'Make.com' + name: 'Make.com' | 'Pabbly Connect' url: string } type Props = { - step: WebhookStep | MakeComStep + step: WebhookStep | MakeComStep | PabblyConnectStep onOptionsChange: (options: WebhookOptions) => void provider?: Provider } diff --git a/apps/builder/components/shared/Graph/Nodes/StepNode/StepNodeContent/StepNodeContent.tsx b/apps/builder/components/shared/Graph/Nodes/StepNode/StepNodeContent/StepNodeContent.tsx index 68035a70546..ef97d4a9174 100644 --- a/apps/builder/components/shared/Graph/Nodes/StepNode/StepNodeContent/StepNodeContent.tsx +++ b/apps/builder/components/shared/Graph/Nodes/StepNode/StepNodeContent/StepNodeContent.tsx @@ -125,6 +125,7 @@ export const StepNodeContent = ({ step, indices }: Props) => { ) } + case IntegrationStepType.PABBLY_CONNECT: case IntegrationStepType.MAKE_COM: { return ( { case IntegrationStepType.GOOGLE_ANALYTICS: return defaultGoogleAnalyticsOptions case IntegrationStepType.ZAPIER: + case IntegrationStepType.PABBLY_CONNECT: case IntegrationStepType.MAKE_COM: case IntegrationStepType.WEBHOOK: return defaultWebhookOptions diff --git a/packages/bot-engine/src/services/integration.ts b/packages/bot-engine/src/services/integration.ts index fc6fe187945..ee0bdfdb389 100644 --- a/packages/bot-engine/src/services/integration.ts +++ b/packages/bot-engine/src/services/integration.ts @@ -17,6 +17,7 @@ import { Block, VariableWithValue, MakeComStep, + PabblyConnectStep, } from 'models' import { stringify } from 'qs' import { byId, sendRequest } from 'utils' @@ -51,6 +52,7 @@ export const executeIntegration = ({ return executeGoogleAnalyticsIntegration(step, context) case IntegrationStepType.ZAPIER: case IntegrationStepType.MAKE_COM: + case IntegrationStepType.PABBLY_CONNECT: case IntegrationStepType.WEBHOOK: return executeWebhook(step, context) case IntegrationStepType.EMAIL: @@ -209,7 +211,7 @@ const parseCellValues = ( }, {}) const executeWebhook = async ( - step: WebhookStep | ZapierStep | MakeComStep, + step: WebhookStep | ZapierStep | MakeComStep | PabblyConnectStep, { blockId, stepId, diff --git a/packages/models/src/typebot/steps/integration.ts b/packages/models/src/typebot/steps/integration.ts index ab258c7b171..6fcf51a6e7f 100644 --- a/packages/models/src/typebot/steps/integration.ts +++ b/packages/models/src/typebot/steps/integration.ts @@ -7,6 +7,7 @@ export type IntegrationStep = | SendEmailStep | ZapierStep | MakeComStep + | PabblyConnectStep export type IntegrationStepOptions = | GoogleSheetsOptions @@ -21,6 +22,7 @@ export enum IntegrationStepType { EMAIL = 'Email', ZAPIER = 'Zapier', MAKE_COM = 'Make.com', + PABBLY_CONNECT = 'Pabbly', } export type GoogleSheetsStep = StepBase & { @@ -47,6 +49,10 @@ export type MakeComStep = Omit & { type: IntegrationStepType.MAKE_COM } +export type PabblyConnectStep = Omit & { + type: IntegrationStepType.PABBLY_CONNECT +} + export type SendEmailStep = StepBase & { type: IntegrationStepType.EMAIL options: SendEmailOptions diff --git a/packages/utils/src/utils.ts b/packages/utils/src/utils.ts index 9a4673e183b..670a0e92341 100644 --- a/packages/utils/src/utils.ts +++ b/packages/utils/src/utils.ts @@ -116,6 +116,7 @@ export const stepTypeHasWebhook = ( IntegrationStepType.WEBHOOK, IntegrationStepType.ZAPIER, IntegrationStepType.MAKE_COM, + IntegrationStepType.PABBLY_CONNECT, ] as string[]).includes(type) export const stepTypeHasItems = (