# Up/Mail kennisbank Bron: https://mail.upscailed.nl/llms-full.txt Laatst bijgewerkt: 2026-09-04 Up/Mail is het campagne-mailprogramma van de Up-familie (UpScailed). Het verstuurt nieuwsbrieven en mailings via de eigen zakelijke mailbox van de afzender (Microsoft 365 of Google Workspace), in plaats van via een externe verzenddienst. De web-app, de REST API en de MCP-server werken op dezelfde bron van waarheid. --- # Wat Up/Mail anders maakt - Mails vertrekken 1-op-1 uit de eigen mailbox van de afzender. Elke ontvanger krijgt een persoonlijke mail; er is nooit een gedeelde cc of bcc. - Antwoorden landen gewoon in de eigen inbox van de afzender; Up/Mail leest geen antwoorden mee. - Een dagcap en verzendtempo per mailbox beschermen de verzendreputatie; grote campagnes worden automatisch over dagen gespreid (drip). - Elk bedrijf werkt in een eigen werkruimte. Je kunt 14 dagen gratis starten op Max-niveau, zonder betaalgegevens. Daarna kies je Up/Mail los, Select met drie apps naar keuze, of Max met de volledige Up-familie. --- # Prijzen en abonnementen De prijs is een vast bedrag per grootte en nooit een bedrag per gebruiker. Alle bedragen zijn per maand en exclusief btw. | Grootte | Gebruikers | Contacten | Up/Mail los | Select | Max | |---|---:|---:|---:|---:|---:| | Solo | 1 | Tot 2.500 | €9 | €19 | €69 | | Studio | Tot 5 | Tot 10.000 | €29 | €59 | €179 | | Team | Tot 10 | Tot 15.000 | €49 | €99 | €299 | | Kantoor | Tot 25 | Tot 25.000 | €99 | €199 | €599 | | Organisatie | Tot 100 | Tot 100.000 | €349 | €649 | €1.499 | - Het contactenplafond schaalt mee met de grootte; er is nooit een prijs per contact. - Meer dan 100 medewerkers? Vraag een prijs op maat aan via hallo@upscailed.nl. - Select bevat drie apps naar keuze uit Up/Sales, Up/Actions, Up/Mail, Up/Habits en Up/HQ. - Max bevat alle apps, Up/Academy Compleet, alle SCALE-skills en toekomstige apps. - Jaarbetaling kost 10 maandbedragen en geeft dus 2 maanden korting. - De proefperiode duurt 14 dagen op Max-niveau, zonder betaalgegevens. - Up/Insight is een aparte advies- en meetdienst en valt niet binnen Select of Max. - Bestaande gebruikers houden hun huidige plan en prijs. Deze prijzen gelden voor nieuwe accounts. De prijzenpagina van Up/Mail: https://mail.upscailed.nl/prijzen. Actuele vergelijking en checkout: https://www.upscailed.nl/prijzen en https://www.upscailed.nl/afrekenen. --- # Kernbegrippen - Werkruimte (workspace): de tenant. Elk bedrijf heeft een eigen werkruimte met leden (rollen: meekijker, bewerker, beheerder, eigenaar), contacten, groepen, mailboxen en campagnes. Data is strikt per werkruimte gescheiden. - Mailbox: een gekoppelde verzendmailbox (Microsoft 365 via OAuth, Google Workspace via domain-wide delegation, of een demo-rail voor lokaal testen). Heeft een afzendernaam, dagcap en tempo per minuut. Tokens staan versleuteld (AES-256-GCM) en zijn alleen server-side leesbaar. - Contact: een persoon met e-mailadres (uniek per werkruimte), naam, bedrijf, tags, groepslidmaatschappen, status (actief, afgemeld, gebounced, onderdrukt), AVG-grondslag en een duurzame engagement-telling (campagnes ontvangen en geopend, kliks, laatst actief). - Groep: een verzameling contacten; campagnes richten zich op één of meer groepen. Doelgroepen worden bij verzending ontdubbeld en gefilterd op afmeldingen en suppressie. - Campagne: naam, onderwerpsregel, HTML (geplakt), doelgroep, mailbox en instellingen. Statussen: concept, ingepland, wordt verstuurd, gepauzeerd, verstuurd, mislukt. Alleen concepten kunnen worden verwijderd; rapportages van verstuurde campagnes blijven bewaard. - Ontvanger (recipient): de koppeling campagne × contact, met verzendstatus en meetgegevens per persoon. - Suppressielijst: adressen die nooit meer gemaild worden (afmelding, harde bounce, klacht of handmatig). Wordt bij elke verzending gerespecteerd, ook midden in een lopende drip. - Antwoordknop: een knop in de mail die een gemeten JA-reactie oplevert en automatisch een notitie plus beltaak aanmaakt in Up/Sales. --- # Hoe een campagne werkt 1. Plak je HTML. De editor controleert automatisch: afmeldlink aanwezig ({{afmeldlink}}; ontbreekt die, dan voegt Up/Mail zelf een nette afmeldfooter toe), afbeeldingen met volledige URL's, mailbare breedte (600 tot 700 px of vloeibaar), merge-velden herkend. Een live voorbeeld toont de mail met echte voorbeelddata, ook in mobiele weergave. 2. Kies je doelgroep: één of meer groepen. Je ziet vooraf het aantal ontvangers na ontdubbeling en suppressie-filtering. 3. Stuur eerst een testmail naar jezelf. De test rendert exact zoals de echte verzending maar telt nergens in mee. 4. Verstuur achter de verzenddrempel: een bevestigingsscherm toont doelgroep, afzender en onderwerp, waarschuwt als er geen testmail is gestuurd, en ontgrendelt pas wanneer je het aantal ontvangers intypt. Versturen kan niet ongedaan worden gemaakt. 5. De verzendmotor werkt de wachtrij af met het ingestelde tempo en de dagcap. Grote campagnes lopen automatisch over meerdere dagen door. Een vastgelopen verzendronde herstelt zichzelf: claims ouder dan 10 minuten gaan terug in de wachtrij. Een guardrail pauzeert de campagne automatisch bij meer dan 5 procent fouten. Merge-velden in de HTML: {{voornaam}}, {{achternaam}}, {{bedrijf}}, {{email}}, elk met optionele fallback ({{voornaam|daar}}). Waarden worden bij het invullen HTML-geescaped zodat contactgegevens nooit als opmaak in de mail belanden. {{afmeldlink}} wordt de persoonlijke afmeldlink. --- # Meten en rapportage - Gemeten per ontvanger: verzonden, opens (meetpixel), kliks (via ondertekende redirect-links), afmeldingen, bounces en antwoorden. - Opens zijn indicatief: Apple Mail laadt de meetpixel automatisch waardoor het openpercentage te hoog kan uitvallen. Kliks en antwoorden zijn betrouwbaar. Een klik telt ook als open, ook als de pixel geblokkeerd werd. - Meet-dedupe: herhaalde hits van dezelfde ontvanger binnen 60 seconden tellen één keer. - Het rapport toont: statustegels (verzonden, geopend, geklikt, afgemeld, mislukt, gebounced), opens en kliks per uur over de eerste 48 uur, vergelijkingschips met de vorige campagne en het eigen gemiddelde, kliks per link, de antwoordenlijst en een activiteitenfeed. Ruwe events blijven 90 dagen bewaard; dagtotalen per werkruimte blijven permanent (zonder persoonsgegevens). - Hermail naar niet-openers: op het rapport van een verstuurde campagne, op zijn vroegst 3 dagen na afronding en maximaal één keer per campagne. Maakt automatisch een groep van iedereen die niet opende plus een nieuw concept met dezelfde inhoud en een Herinnering-onderwerpsregel. - Tracking-URL's bevatten geen persoonsgegevens: alleen document-ID's, HMAC-SHA256-ondertekend. De doel-URL van een klik komt uit de campagne zelf via een index (geen open redirect). --- # Antwoordknoppen Syntax in de HTML: {{antwoord:kind|Labeltekst}}, bijvoorbeeld {{antwoord:incasso|Ja, stel automatische incasso voor mij in}}. Elke ontvanger krijgt een persoonlijke, ondertekende link. Wie klikt, ziet een bevestigingspagina met de vraag en een optioneel berichtveld; pas na bevestiging wordt de reactie geregistreerd (scanner-proof: de GET registreert niets, alleen de bevestigende POST, en die is idempotent). Bij een bevestigd antwoord: teller op de campagne, regel in het rapport, en automatische doorzetting naar Up/Sales wanneer de werkruimte-koppeling is ingesteld: contact wordt opgezocht of aangemaakt, er komt een notitie (inclusief het eventuele bericht van de klant) en een beltaak voor de volgende ochtend 09:00. --- # AVG en deliverability - Afmelden: one-click volgens RFC 8058 (List-Unsubscribe-header) plus een zichtbare afmeldlink of automatische afmeldfooter in elke mail. Afmeldingen gaan op de permanente suppressielijst en worden door imports nooit stilletjes ongedaan gemaakt. - Bewaartermijnen: ruwe meetgebeurtenissen 90 dagen (automatische TTL), dagtotalen permanent maar zonder persoonsgegevens, afmeldlijst permanent (nodig om de afmelding te blijven respecteren). - Recht op vergetelheid: bij het verwijderen van een contact worden ook de ontvanger-registraties en antwoorden in oude campagnes gepseudonimiseerd (adres en naam weg, cijfers blijven kloppen). - Bounce-meting: Up/Mail leest elk uur de inbox van de Microsoft-verzendmailbox en herkent onbestelbaar-berichten (NDR's). Harde bounces (5.x.x, adres bestaat niet) markeren de ontvanger; na twee harde bounces gaat een adres automatisch op status gebounced plus de suppressielijst. Zachte bounces (4.x.x, bijvoorbeeld volle mailbox) worden alleen geteld. - Elke werkruimte houdt een auditspoor bij van gevoelige handelingen: sleutel aangemaakt of ingetrokken, mailbox gekoppeld of losgekoppeld, campagne gestart, concept of contact verwijderd, koppeling ingesteld. Zichtbaar onder Instellingen, Auditspoor. - Data staat in Google Firestore, regio europe-west3 (Frankfurt). De database accepteert geen enkele rechtstreekse client-toegang (deny-all rules); alles loopt server-side. --- # REST API v1 Basis: https://mail.upscailed.nl/api/v1 Auth: Authorization: Bearer um_... (sleutel uit Instellingen, API en MCP; alleen beheerders). Een sleutel kan een vervaldatum hebben (expiresInDays bij aanmaken) en een IP-lijst (allowedIps); de laatste 30 aanroepen zijn per sleutel zichtbaar. Verlopen geeft 401, verkeerd IP 403. Sleutels hebben een bereik: - werkruimte-sleutel (standaard): vast aan één werkruimte. Een X-Workspace-header wordt genegeerd. - accountsleutel: geldig voor elke werkruimte waar de eigenaar lid van is. Geef de werkruimte mee met de header X-Workspace: , of de queryparameter ?workspace=. Ontbreekt hij en heeft de eigenaar precies één werkruimte, dan wordt die gebruikt; bij meerdere volgt een 400 die de werkruimtes met id en naam opsomt. Per aanroep geldt de rol van de eigenaar in díe werkruimte: een meekijker kan niets schrijven, ook al staat de scope aan. Scopes: contacts:read/write, relations:read/write, groups:write, campaigns:read/write/send, suppression:read/write, mailboxes:read, stats:read, team:read, audit:read, workspaces:read/write, integrations:write. Endpoints: - GET /api/v1/workspaces: werkruimtes waar deze sleutel bij mag, met rol. Begin hier bij een accountsleutel. (workspaces:read) - POST /api/v1/workspaces: nieuwe werkruimte (alleen accountsleutel). (workspaces:write) - GET /api/v1/groups: groepen met aantallen. (contacts:read) - POST /api/v1/groups: groep aanmaken. (contacts:write of groups:write) - DELETE /api/v1/groups/:id: groep verwijderen. (groups:write) - GET /api/v1/contacts?groupId=&status=: contacten. (contacts:read) - POST /api/v1/contacts: contact toevoegen of bijwerken, dedupe op e-mail. (contacts:write) - POST /api/v1/contacts/import: bulk-import met groepstoewijzing en AVG-grondslag. (contacts:write) - GET /api/v1/relations: administraties (ondernemingen). (relations:read of contacts:read) - POST /api/v1/relations en /api/v1/relations/import: administraties toevoegen of bijwerken. (relations:write) - GET /api/v1/campaigns: campagnes met status en cijfers. (campaigns:read) - POST /api/v1/campaigns: conceptcampagne met geplakte HTML. (campaigns:write) - GET /api/v1/campaigns/:id/stats: cijfers van één campagne. (campaigns:read) - GET /api/v1/campaigns/:id/report: volledig rapport: per ontvanger, opens en kliks per uur, kliks per link, antwoorden, vergelijking met eerdere campagnes. (campaigns:read of stats:read) - POST /api/v1/campaigns/:id/send: campagne starten. Aparte scope campaigns:send, bedoeld voor bewuste automatiseringen. - GET /api/v1/suppression: de afmeldlijst. (suppression:read) - POST /api/v1/suppression: adres op de afmeldlijst zetten. (suppression:write) - GET /api/v1/suppression/check?email=: staat een adres op de lijst. (contacts:read) - GET /api/v1/mailboxes: verzendmailboxen met status, dagcap en tempo. (mailboxes:read) - GET /api/v1/mailboxes/:id/health: SPF, DKIM, DMARC en MX van het afzenderdomein, met fixes en een score. (mailboxes:read) - GET/POST /api/v1/forms: aanmeldformulieren met dubbele opt-in; elk formulier heeft een publieke url /f/:id. (contacts:read / contacts:write) - GET /api/v1/team: leden en openstaande uitnodigingen. (team:read) - GET /api/v1/audit: auditspoor van gevoelige handelingen. (audit:read) - GET /api/v1/stats?period=30d|12m: dagtotalen van de werkruimte. (stats:read) - POST /api/v1/integrations/upsales: Up/Sales-koppeling instellen. (integrations:write) Foutformaat: { "error": "beschrijving in gewone taal" } met passende HTTP-status. Er geldt een snelheidslimiet op de publieke endpoints. --- # MCP-server Endpoint: https://mail.upscailed.nl/api/mcp (Streamable HTTP, JSON-RPC 2.0). Auth: dezelfde um_-sleutel als Bearer-token, óf OAuth 2.1 (zie hieronder); tools/list vereist een geldige sleutel of token. OAuth voor MCP-clients (Claude Desktop, claude.ai, Cursor): voeg de endpoint toe als connector zonder sleutel. De client vindt de flow zelf via WWW-Authenticate op de 401 en /.well-known/oauth-authorization-server: dynamische registratie (POST /api/oauth/register, alleen https- of localhost-redirects), toestemmingsscherm op /oauth/authorize (inloggen met je Up/Mail-account, kies één werkruimte of al je werkruimtes, kies wat de assistent mag), PKCE S256 verplicht, code van tien minuten die één keer werkt, toegangstoken (uo_) van een uur, vernieuwingstoken (ur_) van dertig dagen dat bij elk gebruik wisselt. Tokens hebben dezelfde rechten en limieten als een sleutel. Intrekken: Instellingen, API en MCP, Verbonden assistenten. Ook hier kan versturen en activeren niet via de assistent. Elke tool accepteert workspace_id. Bij een werkruimte-sleutel wordt die genegeerd; bij een accountsleutel is hij nodig zodra de eigenaar meer dan één werkruimte heeft (bij precies één wordt die vanzelf gekozen). Begin met list_workspaces om de id's op te halen; de server geeft bij initialize ook een korte gebruiksaanwijzing mee. Tools: - list_workspaces (workspaces:read): werkruimtes waar deze sleutel bij mag, met rol. - list_groups (contacts:read), create_group (groups:write) - list_contacts (contacts:read), upsert_contacts (contacts:write) - list_relations (relations:read), upsert_relations (relations:write) - list_campaigns (campaigns:read), get_campaign_stats (campaigns:read), get_campaign_report (campaigns:read) - create_campaign (campaigns:write), update_campaign (campaigns:write), send_test (campaigns:write) - campaign_action (campaigns:write): pause, resume, duplicate, resend-non-openers - list_mailboxes (mailboxes:read) - check_suppression (contacts:read), list_suppression (suppression:read), add_suppression (suppression:write) - get_stats (stats:read) Bewuste ontwerpkeuze: er is géén verstuur-tool in MCP. Een agent kan alles klaarzetten, bijwerken en testen; de definitieve verzending doet een mens in de app, achter een drempel die om het aantal ontvangers vraagt. Snelheidslimiet: 120 verzoeken per minuut per sleutel. Voorbeeldconfiguratie (Claude Code): { "mcpServers": { "upmail": { "type": "http", "url": "https://mail.upscailed.nl/api/mcp", "headers": { "Authorization": "Bearer um_JOUW_SLEUTEL" } } } } --- # Automations Een automation is een rechte reeks stappen die per persoon vanzelf loopt: mail, wachten, groep aanpassen, label plakken, einde. Onder water is elke mailstap een campagne (kind "flow"), dus meten, kliks, afmelden en bounces werken exact als bij een gewone campagne. In de app onder het kopje Automations. Triggers (veld trigger): - {type:"group", groupId}: zodra iemand in die groep komt. - {type:"tag", tag}: zodra iemand dat label krijgt. - {type:"date", field, offsetDays, yearly, hour}: op de datum uit een eigen contactveld (fields., notatie 2026-12-31 of 31-12-2026), offsetDays negatief = ervoor, yearly voor verjaardagen en jaarafsluitingen, hour = rond welk uur (Europe/Amsterdam). Eén keer per dag nagelopen. - {type:"event", event}: bij een gebeurtenis van buiten. Meld die met POST /api/v1/events {event, email|contactId, data} of de MCP-tool trigger_event; data wordt merge-velden in de mails ({{factuurnummer}}). Een gebeurtenis mag iemand opnieuw laten instappen zodra een eerdere run klaar is. - {type:"manual"}: per persoon starten vanaf de contactkaart of via enroll. Regels: via de groep stapt iemand hooguit één keer in; wie al in de groep zat toen de automation aanging, stapt niet in (tenzij daar bij het activeren voor is gekozen); afmelden of bouncen stopt de run direct; niemand krijgt twee automation-mails op één dag; een weggehaalde stap: wie erop wachtte gaat door naar wat er nu op die plek staat. Stappen (veld type): - mail: subject, html, trackOpens, trackClicks. Merge-velden zoals {{voornaam}}, {{bedrijf}}, {{afmeldlink}}, {{voorkeurenlink}} en het merkpakket ({{logo}}, {{handtekening}}, {{kleur}}, {{voettekst}}, ingesteld bij Instellingen → Werkruimte) werken. - wait: amount, unit (minutes|hours|days), businessHours (alleen doorgaan op werkdagen 08:00-18:00 Europe/Amsterdam). - group: action (add|remove), groupId. - tag: tag. - branch: condition (zie onder), yes: [stappen], no: [stappen]. Na de tak gaan beide paden verder met de stap na de vertakking. - waitFor: event (opened|clicked|responded), stepId (welke mail; leeg = de vorige), maxAmount, maxUnit (hours|days). Gebeurtenisgestuurd: een open, klik of antwoord laat de run meteen verdergaan. - notify: to, subject, message (merge-velden mogen): interne mail naar jou of een collega. - task: title, note: taak in Up/Sales op de klantkaart (vereist de Up/Sales-koppeling). - end. Voorwaarden (condition, ook voor het doel van een automation): {kind:"opened"|"clicked"|"responded", stepId?, response?} over een mailstap (zonder stepId: de vorige mail), {kind:"inGroup", groupId}, {kind:"hasTag", tag}, {kind:"field", field, op: equals|contains|notEmpty, value?}. Doel: veld goal op de automation; is het bereikt, dan stapt iemand eerder uit en telt hij in stats.goals. REST: - GET /api/v1/automations, POST /api/v1/automations {name, mailboxId, trigger, steps}. (automations:read / automations:write) - GET /api/v1/automations/:id (met cijfers per mailstap), PATCH (naam, trigger, mailbox, stappen; mag ook als hij actief is), DELETE (niet als hij actief is). - GET /api/v1/automations/:id/runs: wie zit waar, met stap, volgend moment en status (active|done|stopped). - POST /api/v1/automations/:id/enroll {email} of {contactId}: iemand laten instappen (automation moet actief zijn). - POST /api/v1/automations/:id/actions {action}: pause, test (email), stopRun (runId). activate (includeExisting) vraagt daarnaast de scope campaigns:send, want activeren zet mails op de automatische piloot. - POST /api/v1/events {event, email|contactId, data}: gebeurtenis melden (automations:write). Antwoord: welke automations het contact hebben laten instappen. Verzendrails: Microsoft 365 of Google Workspace (de eigen mailbox van de klant) of Postmark (eigen verzenddomein, volume, bounce-webhooks). Import houdt ongeldige, wegwerp- en rol-adressen buiten de deur (skipped met reden). Campagne-optie smartSend en wachtstap-optie smart: versturen op het uur waarop iemand meestal zijn mail opent. Verzendbeleid: per werkruimte een maximum per persoon per dag en per week (standaard 1 en 4), over alle automations heen; een mail erboven schuift naar de volgende ochtend. Optioneel ook voor campagnes (dan worden mensen boven de grens overgeslagen). Snelheidslimiet: 120 verzoeken per minuut per sleutel, 10 testmails per uur per sleutel. Motorgezondheid: GET /api/health (200 of 503). MCP-tools: list_automations, get_automation, create_automation, update_automation, automation_action (pause|test|stop_run), enroll_in_automation, trigger_event, list_automation_runs. Activeren kan bewust niet via MCP; dat doet een mens in de app. --- # Afmelden en heraanmelden Elke mail heeft een afmeldlink (ook RFC 8058 one-click). Afmelden zet een suppressierecord dat nooit wordt verwijderd; het stopt campagnes én automations direct. Een beheerder kan een afmelding niet opheffen, ook niet via de API. De ontvanger zelf wel: op de afgemeld-pagina staat "Per ongeluk? Meld mij opnieuw aan", die een bevestigingsmail stuurt (48 uur geldig). Na de klik op de bevestigingspagina wordt de afmelding append-only opgeheven: het oude record blijft staan als bewijs, de nieuwe toestemming komt ernaast met kanaal, datum, letterlijke tekst en IP, het contact is weer actief en er komt een auditregel. Handmatige en bounce-suppressies kan een beheerder wel weghalen (Instellingen, Afmeldlijst); het contact wordt dan weer actief. Een testmail gaat nooit naar een adres op de afmeldlijst. # Webhooks (naar buiten) Instellingen, Webhooks (beheerder) of POST /api/v1/webhooks {url, events[], name}: Up/Mail stuurt een POST bij contact.created, contact.unsubscribed, mail.sent, mail.opened, mail.clicked, mail.bounced, response.received, automation.entered, automation.completed en form.signup. Body: {event, wsId, timestamp, data}. Handtekening: X-UpMail-Signature: sha256=HMAC-SHA256(secret, timestamp + "." + body) met de secret die je één keer ziet bij aanmaken; X-UpMail-Timestamp staat in de kop. Aflevering via de minuut-cron, tien seconden time-out, drie herhaalpogingen (5 min, 30 min, 2 uur), automatisch uit na twintig fouten op rij. Werkt met Zapier, Make, n8n of een eigen script. # Security Werkruimte-instellingen: tijdzone per werkruimte (IANA, standaard Europe/Amsterdam) voor de kantooruren van automations en de dagtelling van de frequentiegrens. Tweestapsverificatie: Instellingen, Beveiliging. Authenticator-app (TOTP), geheim versleuteld opgeslagen, acht reservecodes die één keer werken. Na bevestigen blijft een apparaat dertig dagen vertrouwd; daarna vraagt de app opnieuw om de code. Overal uitloggen beëindigt alle sessies. API-sleutels en OAuth-koppelingen staan hier los van en trek je in bij API en MCP. - Firestore staat volledig dicht voor client-toegang (deny-all); alle datatoegang loopt server-side via de Admin SDK. Een geautomatiseerde test (111 controles) bewaakt dit bij elke wijziging in CI. - Security-headers op alle pagina's: Content-Security-Policy, X-Frame-Options DENY, X-Content-Type-Options nosniff, Referrer-Policy, Permissions-Policy, HSTS. - Provider-tokens versleuteld met AES-256-GCM; meetlinks HMAC-ondertekend zonder persoonsgegevens; geen open redirects; dependency-scanning en secret-scanning draaien continu. - Laatste volledige security-audit: 6 augustus 2026, intern keurmerk Zilver (0 kritieke, 0 hoge, 0 middel-bevindingen open). Interne self-audit tegen OWASP 2025 / ASVS L2 / AVG; geen externe certificering. --- # Up-familie Up/Mail deelt het fundament met de andere Up-producten van UpScailed: zelfde warme neutralen en typografie, per product een eigen accentkleur. UpScailed (bedrijf) = coral, Up/Actions (taken) = teal, Up/Sales (CRM) = groen, Up/Mail (campagnemail) = blauw. Up/Sales: https://sales.upscailed.nl (llms: https://sales.upscailed.nl/llms.txt).