Daily Web3 Digest Email

automation · by zorilla · came with Zorilla

One email a day with new Hacker News stories about web3, blockchain and crypto. Needs a Resend key named resend_key.

ScheduleEvery 1 daySearch Hacker NewsAbout "web3 OR blockchain OR …Only the first timeOnce per id, everRun JavaScriptJavaScript you wroteSend emailSends one email per item, wit…

5 steps, drawn from the file

What this can do

Read out of the file, not written by the author.

contacts api.resend.comcontacts hn.algolia.comruns custom javascript

Uses your saved keys named resend_key. It binds to your own keys of those names. No key travels in the file.

5 steps, started by Schedule.

This runs javascript written by its author. That code is not sandboxed. It runs with the same access as Zorilla itself. Read it before you install it.
Contents
{
  "name": "Daily Web3 Digest Email",
  "nodes": [
    {
      "id": "clock",
      "type": "core.schedule",
      "params": {
        "mode": "every",
        "every": 1,
        "unit": "days"
      },
      "position": {
        "x": 40,
        "y": 170
      }
    },
    {
      "id": "news",
      "type": "hackernews.search",
      "params": {
        "query": "web3 OR blockchain OR ethereum OR solana",
        "tags": "story",
        "minPoints": 5,
        "limit": 25
      },
      "position": {
        "x": 310,
        "y": 170
      }
    },
    {
      "id": "fresh",
      "type": "logic.once",
      "params": {
        "key": "{{ $json.id }}"
      },
      "position": {
        "x": 580,
        "y": 170
      }
    },
    {
      "id": "digest",
      "type": "code.js",
      "params": {
        "code": "const rows = items.map((i) => i.json)\nif (!rows.length) return []\nconst html = rows\n  .sort((a, b) => (b.points ?? 0) - (a.points ?? 0))\n  .map((s) => `<p><a href=\"${s.url || 'https://news.ycombinator.com/item?id=' + s.id}\">${s.title}</a><br><small>${s.points ?? 0} points</small></p>`)\n  .join('')\nreturn [{ json: { count: rows.length, html } }]",
        "timeout": 15
      },
      "position": {
        "x": 850,
        "y": 170
      }
    },
    {
      "id": "mail",
      "type": "resend.send",
      "params": {
        "credential": "resend_key",
        "to": "you@example.com",
        "subject": "Web3 digest: {{ $json.count }} new stories",
        "html": "{{ $json.html }}"
      },
      "position": {
        "x": 1120,
        "y": 170
      }
    }
  ],
  "edges": [
    {
      "from": "clock",
      "fromPort": "main",
      "to": "news",
      "toPort": "main"
    },
    {
      "from": "news",
      "fromPort": "main",
      "to": "fresh",
      "toPort": "main"
    },
    {
      "from": "fresh",
      "fromPort": "main",
      "to": "digest",
      "toPort": "main"
    },
    {
      "from": "digest",
      "fromPort": "main",
      "to": "mail",
      "toPort": "main"
    }
  ]
}
Back

Download it, then in Zorilla press add one from a file. You get a screen listing what it contacts and which keys it asks for before anything is saved.