feat: one platform — email campaigns, templates, automations and flow… - #549
Closed
onlypromarketer wants to merge 2 commits into
Closed
onlypromarketer wants to merge 2 commits into
onlypromarketer wants to merge 2 commits into
Conversation
…s inside the CRM Combine wacrm (WhatsApp CRM) and listmonk (email engine) into a single product. listmonk runs headless behind the CRM's API and is never exposed publicly; every email capability is a native page or builder step in wacrm. Email section - Campaigns: list, compose, edit, preview, test-send, start/pause/cancel - Lists: create, and sync CRM contacts in as subscribers (phone + contact id carried in attribs; unsubscribed lists never re-added) - Subscribers: browse, search (SQL-injection-safe against listmonk's raw query parameter) - Templates: CRUD + preview for transactional emails and newsletter layouts - Settings: SMTP + sender identity, with the password-mask round-trip handled so a save never overwrites the stored secret with bullets Email inside the WhatsApp builders - Automations: new steps send_email and add_to_mailing_list - Flows: new send_email node (canvas, edges, validation, engine) - Both send via listmonk's tx API in external mode; contacts without an email are skipped, not failed - Migration 040 widens the flow_nodes.node_type CHECK Deployment (deploy/) - docker-compose.yml: single hostname, Caddy auto-HTTPS, engine sealed off, recipient-facing unsubscribe/tracking routes proxied under the CRM domain - docker-compose.local.yml: same stack on localhost - setup-api-user.sh: creates listmonk's API user and performs the restart its in-memory user cache requires - README: setup, local Mailpit testing, why listmonk is a separate service (AGPL vs MIT), why Mautic was evaluated and not added Verified end to end: a signed inbound WhatsApp webhook started a flow and an automation that delivered two personalised emails through SMTP to a local inbox, added the contact to a mailing list, and skipped cleanly for an email-less contact. 876 tests pass. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…template Repository identity now reflects what this is: a self-hosted WhatsApp + email marketing platform maintained by ProMarketer, forked from the ArnasDon/wacrm template and credited as such. - README rewritten for the combined product; upstream hosting-partner promotion and referral links removed; upstream and listmonk credited. - package.json / mcp-server metadata: name, description, author, homepage, repository and issue links point here. Version 1.0.0. - CHANGELOG: 1.0.0 entry covering the email platform work, required migration and new environment variables; inherited history kept. - LICENSE: upstream MIT notice retained (as the licence requires); ProMarketer added for its portions. - .github: CODEOWNERS, dependabot reviewers, security and conduct contacts, issue-template links; referral image deleted. - CONTRIBUTING rewritten for a product repo, including how to pull upstream fixes. - In-app title and page metadata renamed from "CRM Template for WhatsApp" to "WhatsApp + Email CRM" (en/ko). - Invite-link generation no longer falls back to the upstream project's website when the deployment URL cannot be derived; it uses NEXT_PUBLIC_SITE_URL, then the local dev origin. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Owner
|
Thanks for sharing this. Per CONTRIBUTING.md this repository is a template: forks are expected to diverge, and upstream only takes small, scoped fixes (security, correctness, docs) opened against current This one also replaces LICENSE and README with ProMarketer branding, which is fine for your fork but cannot be merged upstream. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…s inside the CRM
Combine wacrm (WhatsApp CRM) and listmonk (email engine) into a single product. listmonk runs headless behind the CRM's API and is never exposed publicly; every email capability is a native page or builder step in wacrm.
Email section
Email inside the WhatsApp builders
Deployment (deploy/)
Verified end to end: a signed inbound WhatsApp webhook started a flow and an automation that delivered two personalised emails through SMTP to a local inbox, added the contact to a mailing list, and skipped cleanly for an email-less contact. 876 tests pass.
Summary
What changed
Test plan
npm run typecheckclean.npm run lint— no new errors beyond the pre-existing backlog.npm run buildsucceeds.Related