"use client"; import React, { useState } from "react"; import { useSelection, Button, toast } from "@payloadcms/ui"; export const BulkMailButton: React.FC = () => { const { selected } = useSelection(); const [isOpen, setIsOpen] = useState(false); const [prompt, setPrompt] = useState(""); const [isTest, setIsTest] = useState(true); const [isLoading, setIsLoading] = useState(false); const selectedCount = Object.keys(selected).length; if (selectedCount === 0) { return null; } const handleBulkMail = async () => { setIsLoading(true); try { const contactIds = Object.keys(selected); const response = await fetch("/api/crm-contacts/bulk-mail", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ contactIds, instructions: prompt, isTest, }), }); const data = await response.json(); if (data.success) { toast.success( `Successfully sent emails to ${contactIds.length} contacts.`, ); setIsOpen(false); } else { toast.error(`Failed: ${data.error}`); } } catch (e: any) { toast.error(`An error occurred: ${e.message}`); } finally { setIsLoading(false); } }; return (
{isOpen && (

AI Bulk Mail

Generate and send personalized emails to {selectedCount} contacts.