Compare commits
12 Commits
c4a2bc7164
...
551ae0d217
| Author | SHA1 | Date |
|---|---|---|
|
|
551ae0d217 | |
|
|
f59b3efb81 | |
|
|
e929c4563e | |
|
|
dc55322103 | |
|
|
c257f830c9 | |
|
|
7c01037970 | |
|
|
6b578d2c7f | |
|
|
4efa928357 | |
|
|
4987d10145 | |
|
|
65e9ba0e83 | |
|
|
32803f8470 | |
|
|
ae67d1c3be |
|
|
@ -36,7 +36,7 @@ Set up CosmoLocal World infrastructure: Mailcow SMTP for cosmolocal.world, Docmo
|
|||
### Mailcow (cosmolocal.world)
|
||||
- Mailbox: noreply@cosmolocal.world
|
||||
- Alias: newsletter@cosmolocal.world → noreply@cosmolocal.world (sender_allowed=1)
|
||||
- SMTP: [SMTP_HOST]:465 (TLS)
|
||||
- SMTP: mx.jeffemmett.com:465 (TLS)
|
||||
- DNS: SPF, DKIM (2048-bit), DMARC all configured on Cloudflare
|
||||
- Google Postmaster Tools verified
|
||||
|
||||
|
|
|
|||
|
|
@ -32,11 +32,11 @@ services:
|
|||
- DB_POSTGRESDB_PASSWORD=${N8N_DB_PASSWORD}
|
||||
- TWENTY_API_KEY=${TWENTY_API_KEY}
|
||||
- LISTMONK_CREDENTIALS=${LISTMONK_CREDENTIALS}
|
||||
- N8N_SMTP_HOST=${SMTP_HOST}
|
||||
- N8N_SMTP_PORT=${SMTP_PORT}
|
||||
- N8N_SMTP_HOST=mx.jeffemmett.com
|
||||
- N8N_SMTP_PORT=587
|
||||
- N8N_SMTP_USER=${SMTP_USER}
|
||||
- N8N_SMTP_PASS=${SMTP_PASS}
|
||||
- N8N_SMTP_SENDER=${SMTP_SENDER}
|
||||
- N8N_SMTP_SENDER=${SMTP_SENDER:-hello@cosmolocal.world}
|
||||
- N8N_EMAIL_MODE=smtp
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@
|
|||
{
|
||||
"parameters": {
|
||||
"fromEmail": "={{ $env.N8N_SMTP_SENDER }}",
|
||||
"toEmail": "={{ $env.N8N_SMTP_SENDER }}",
|
||||
"toEmail": "hello@cosmolocal.world",
|
||||
"subject": "={{ $json.subject }}",
|
||||
"emailType": "html",
|
||||
"html": "={{ $json.htmlBody }}",
|
||||
|
|
|
|||
|
|
@ -6,18 +6,16 @@ Import these JSON files into [automate.cosmolocal.world](https://automate.cosmol
|
|||
|
||||
API keys are passed as **Docker environment variables** in `docker-compose.yml` (n8n community edition doesn't support Settings > Variables). The workflows access them via `$env.VARIABLE_NAME`.
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `TWENTY_API_KEY` | CRM API key |
|
||||
| `SMTP_HOST` | SMTP server hostname |
|
||||
| `SMTP_PORT` | SMTP server port |
|
||||
| `SMTP_USER` | SMTP username |
|
||||
| `SMTP_PASS` | SMTP password |
|
||||
| `SMTP_SENDER` | From address for outgoing email |
|
||||
| `LISTMONK_CREDENTIALS` | Listmonk `user:pass` |
|
||||
| `N8N_DB_PASSWORD` | n8n PostgreSQL password |
|
||||
| Variable | Description | Where to find |
|
||||
|----------|-------------|---------------|
|
||||
| `TWENTY_API_KEY` | Twenty CRM API key | crm.cosmolocal.world > Settings > API Keys |
|
||||
| `SMTP_USER` | Mailcow SMTP username | e.g. `hello@cosmolocal.world` |
|
||||
| `SMTP_PASS` | Mailcow SMTP password | Mailcow admin panel at mx.jeffemmett.com |
|
||||
| `LISTMONK_CREDENTIALS` | Listmonk `user:pass` | Internal Docker service credentials |
|
||||
|
||||
All credentials are stored in `.env` on the server (gitignored). See server admin for values.
|
||||
Email is sent via **Mailcow SMTP** (`mx.jeffemmett.com:587` STARTTLS). After importing workflows, create an SMTP credential in n8n named "Mailcow SMTP" with the host/user/pass above.
|
||||
|
||||
To set keys, create `/opt/websites/cosmolocal-website/.env` on the server and redeploy.
|
||||
|
||||
## Workflows
|
||||
|
||||
|
|
@ -56,7 +54,7 @@ Syncs all CRM contacts with email addresses to Listmonk list #1. Adjust the list
|
|||
**Trigger:** Weekly on Monday at 9:00 AM
|
||||
**Flow:** Fetch contacts > Filter those not updated in 14+ days > Email report to team
|
||||
|
||||
Sends an HTML table report to the team with stale contacts and a link to the CRM.
|
||||
Sends an HTML table report to `hello@cosmolocal.world` with stale contacts and a link to the CRM.
|
||||
|
||||
### 05 — Webhook Events (Git to CRM)
|
||||
**Trigger:** Webhook POST to `/webhook/git-events`
|
||||
|
|
|
|||
Loading…
Reference in New Issue