diff --git a/clube67/newwhats.local/frontend/pages/flow-builder/_components/MessageNode.tsx b/clube67/newwhats.local/frontend/pages/flow-builder/_components/MessageNode.tsx
new file mode 100644
index 0000000..cc245c7
--- /dev/null
+++ b/clube67/newwhats.local/frontend/pages/flow-builder/_components/MessageNode.tsx
@@ -0,0 +1,59 @@
+import React from 'react';
+import { Handle, Position } from '@xyflow/react';
+import { MessageSquare, Settings2, Image as ImageIcon } from 'lucide-react';
+
+interface MessageNodeProps {
+ data: {
+ label: string;
+ text?: string;
+ image?: string;
+ };
+ isConnectable: boolean;
+}
+
+export default function MessageNode({ data, isConnectable }: MessageNodeProps) {
+ return (
+
+
+
+
+ {/* Header */}
+
+
+ {/* Body */}
+
+ {data.image && (
+
+
+

+
+ )}
+
+ {data.text || "Olá, como posso ajudar? Isso é um nó de mensagem."}
+
+
+
+
+
+ );
+}
diff --git a/clube67/newwhats.local/frontend/pages/flow-builder/_components/TriggerNode.tsx b/clube67/newwhats.local/frontend/pages/flow-builder/_components/TriggerNode.tsx
new file mode 100644
index 0000000..21934e5
--- /dev/null
+++ b/clube67/newwhats.local/frontend/pages/flow-builder/_components/TriggerNode.tsx
@@ -0,0 +1,46 @@
+import React from 'react';
+import { Handle, Position } from '@xyflow/react';
+import { Zap, Settings2 } from 'lucide-react';
+
+interface TriggerNodeProps {
+ data: {
+ label: string;
+ keyword?: string;
+ };
+ isConnectable: boolean;
+}
+
+export default function TriggerNode({ data, isConnectable }: TriggerNodeProps) {
+ return (
+
+ {/* Header */}
+
+
+ {/* Body */}
+
+
On exact match
+
+ {data.keyword || '#welcome'}
+
+
+
+ {/* Source Handle (Bottom or Right) */}
+
+
+ );
+}
diff --git a/clube67/newwhats.local/frontend/pages/flow-builder/index.tsx b/clube67/newwhats.local/frontend/pages/flow-builder/index.tsx
index 5e70f48..0d50f8e 100644
--- a/clube67/newwhats.local/frontend/pages/flow-builder/index.tsx
+++ b/clube67/newwhats.local/frontend/pages/flow-builder/index.tsx
@@ -18,8 +18,8 @@ import { ArrowLeft, Save, Play, MessageSquare, Zap, Clock, Image as ImageIcon }
import Link from 'next/link';
// --- Custom Nodes Types Implementation ---
-import MessageNode from './components/MessageNode';
-import TriggerNode from './components/TriggerNode';
+import MessageNode from './_components/MessageNode';
+import TriggerNode from './_components/TriggerNode';
const nodeTypes = {
messageNode: MessageNode,