slogan3

Maak een op maat gemaakte Sanity CMS Workflow Automatisering

description

Met deze prompt kun je specifieke workflow automatiseringen in Sanity CMS opzetten die je contentbeheer efficiënter maken en handmatige handelingen minimaliseren. Het helpt je tijd te besparen, fouten te verminderen en de productiviteit te verhogen door processen te stroomlijnen die specifiek zijn afgestemd op jouw projectbehoeften. Dit is een unieke aanvulling op de bestaande prompts omdat het zich richt op automatisering van workflows in plaats van contentmodellen, migratie of integraties.

prompt

Help me een workflow automatisering te ontwerpen voor mijn Sanity CMS project. Mijn gewenste geautomatiseerde processen zijn: <beschrijf de specifieke taken of w ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een voorstel voor een workflow automatisering voor jouw Sanity CMS project, gericht op automatische e-mail notificaties bij nieuwe blogposts: **Workflow Automatisering voor E-mail Notificaties bij Nieuwe Blogposts** **Triggers:** - Nieuwe document wordt aangemaakt in Sanity CMS. **Voorwaarden:** - Het document moet van het contenttype "blogpost" zijn. **Acties:** - Stuur een e-mail notificatie naar het redactieteam met details over de nieuwe blogpost (bijvoorbeeld titel, auteur, publicatiedatum en link). **Uitwerking:** 1. **Trigger instellen:** Gebruik een webhook of integratie die reageert op de creatie van nieuwe documenten in Sanity. 2. **Voorwaarde controleren:** Laat de automatisering controleren of het aangemaakte document het contenttype "blogpost" heeft. 3. **Actie uitvoeren:** Als aan de voorwaarde wordt voldaan, stuur dan automatisch een e-mail naar het redactieteam. Dit kan via een service zoals Zapier, Make (voorheen Integromat), of een andere automatiseringstool die met Sanity kan integreren. **Aanvullende suggesties:** - Voeg een korte samenvatting of excerpt toe in de e-mail. - Maak de e-mail persoonlijk of gestileerd voor duidelijkheid. - Overweeg ook notificaties voor updates of wijzigingen in bestaande blogposts. Mocht je verdere details nodig hebben over het instellen van deze automatisering of hulp bij het kiezen van tools, laat het gerust weten!
provider: deepseek
model: deepseek-chat
Absoluut! Hier is een gedetailleerd ontwerp voor het automatiseren van e-mailnotificaties in je Sanity CMS project. ### Overzicht van de Workflow De workflow bestaat uit drie hoofdonderdelen: 1. **Trigger:** Sanity detecteert een wijziging (in dit geval een nieuwe blogpost). 2. **Logica & Voorwaarden:** Een serverloze functie (bijv. een Sanity Webhook of serverless functie) verwerkt de gebeurtenis en controleert of deze voldoet aan de criteria. 3. **Actie:** Bij het voldoen aan de voorwaarden wordt er een e-mail verstuurd via een e-mailservice. --- ### Gedetailleerde Stappen en Technische Uitwerking #### 1. Trigger: Nieuw Document Aangemaakt De meest robuuste en aanbevolen manier om dit in Sanity te doen is via **`sanity.listen`** in een serverless omgeving of via een **webhook**. Sanity's client-side JavaScript SDK biedt een `listen`-methode die een real-time feed van documentwijzigingen retourneert. **Codevoorbeeld (Node.js/serverless omgeving):** ```javascript const sanityClient = require('@sanity/client'); // Configureer de Sanity client met een token met leesrechten const client = sanityClient({ projectId: 'jouw-project-id', dataset: 'production', useCdn: false, token: 'jouw-supergeheim-token-met-leesrechten', // Vereist! apiVersion: '2021-08-31' }); // De subscription luistert naar alle wijzigingen const subscription = client .listen('*') // Luistert naar alle document types .on('create', (event) => { // Deze functie wordt aangeroepen bij elke creatie handleNewDocument(event); }); ``` #### 2. Voorwaarde: Contenttype is 'blogpost' In de `handleNewDocument` functie controleren we of het aangemaakte document van het type `blogpost` is. We kunnen dit afleiden uit de `_type` van het document. **Codevoorbeeld voor de voorwaarde:** ```javascript async function handleNewDocument(event) { // Controleer of het gecreëerde document een 'blogpost' is if (event.result._type === 'blogpost') { // Optionele extra voorwaarde: controleer of de post gepubliceerd is (_createdAt exists bij create, maar je kunt ook op 'draft' vs 'published' checken) // if (event.result._type === 'blogpost' && !event.result._id.startsWith('drafts.')) { console.log('Nieuwe blogpost gedetecteerd! Titel:', event.result.title || 'Geen titel'); // Roep de functie aan die de e-mail verstuurt await sendNotificationEmail(event.result); } else { console.log('Document aangemaakt, maar is geen blogpost. Type:', event.result._type); // Negeer het event } } ``` #### 3. Actie: E-mailnotificatie naar Redactieteam Om e-mails te versturen, gebruik je het best een professionele e-mail-API. **Resend**, **SendGrid**, **Mailgun** of **Postmark** zijn uitstekende en betaalbare opties. Hier gebruik ik **Resend** als voorbeeld vanwege zijn eenvoud. **Stappen voor Resend:** 1. Maak een account aan op [resend.com](https://resend.com). 2. Verifieer je domein (bijv. `jij@jouwdomein.nl`) of gebruik het provided sandbox domain voor testen. 3. Voeg de Resend API Node.js library toe aan je project: `npm install resend` **Codevoorbeeld voor e-mail actie:** ```javascript const { Resend } = require('resend'); const resend = new Resend('re_123456789'); // Vervang met je Resend API Key async function sendNotificationEmail(post) { const postTitle = post.title || 'Nieuwe blogpost (geen titel)'; const postId = post._id; // Construeer de URL om de post direct in Sanity Studio te bewerken const studioUrl = `https://your-studio.sanity.studio/desk/post;${postId}`; try { const { data, error } = await resend.emails.send({ from: 'Sanity CMS <notificaties@jouwdomein.nl>', to: ['redactie@jebedrijf.nl', 'hoofdredacteur@jebedrijf.nl'], // Lijst van e-mailadressen subject: `Nieuwe blogpost klaar voor review: ${postTitle}`, html: ` <h1>Er is een nieuwe blogpost aangemaakt!</h1> <p><strong>Titel:</strong> ${postTitle}</p> <p>Log in op de Sanity Studio om de post te reviewen en te publiceren.</p> <a href="${studioUrl}" style="background-color: #blue; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px; display: inline-block;">Bekijk post in Studio</a> <br> <p><em>Dit is een automatisch bericht. Reageer niet op deze e-mail.</em></p> ` }); if (error) { console.error('Fout bij versturen e-mail:', error); return; } console.log('E-mail notificatie succesvol verstuurd! E-mail ID:', data.id); } catch (err) { console.error('Er ging iets mis:', err); } } ``` --- ### Aanbevolen Implementatie-architectuur Je kunt deze code het best draaien in een **serverless functie** (ook wel "serverless endpoint" of "webhook" genoemd) op een platform zoals: * **Vercel Serverless Functions** * **Netlify Functions** * **AWS Lambda** * **Google Cloud Functions** * **Azure Functions** De workflow ziet er dan zo uit: 1. Je deployed de bovenstaande Node.js code als een serverless functie naar bijv. Vercel. Deze functie start de `sanity.listen()` subscription. 2. Wanneer iemand in Sanity Studio een nieuwe blogpost aanmaakt, detecteert de `listen()` subscription dit. 3. De functie controleert het type (`blogpost`). 4. Als de voorwaarde klopt, gebruikt de functie de Resend API om de e-mail te versturen. 5. De serverless functie logt het resultaat (succes of fout). ### Belangrijke Overwegingen en Volgende Stappen * **Beveiliging:** Bewaar je Sanity `token` en Resend `API Key` altijd veilig in omgevingsvariabelen (.env files) en nooit in je code repository. * **Foutafhandeling:** Zorg voor degelijke foutafhandeling en logging. Je kunt services zoals **Sentry** integreren om fouten te monitoren. * **Toestemmingen (Sanity Token):** Het Sanity token dat je gebruikt moet minstens `read` rechten hebben op je dataset. * **Uitbreidingen:** Je kunt deze workflow eenvoudig uitbreiden. Bijvoorbeeld: * Alleen een notificatie sturen voor posts die de status `inReview` hebben. * Een notificatie sturen naar de auteur wanneer de redactie de post heeft gepubliceerd. * Een Slack-bericht sturen in plaats van (of naast) een e-mail via de Slack Webhook API. Met deze architectuur heb je een schaalbare, betrouwbare en onderhoudsvriendelijke automatisering voor je Sanity CMS.