Hogsend is brand new.Try it
Hogsend
Discord

Integrate Discord into your lifecycle marketing

Add a bot to your Discord server and Hogsend sees who joins, what they post, and when they go quiet — on the same contact as their email and product activity. Then message them, by email or back in Discord.

In motion

Someone joins. Hogsend takes it from there.

A member joins your server, links their email with one click, and the welcome lands the moment they do — one continuous run.

src/journeys/welcome-new-discord-members.ts
export const welcomeNewDiscordMembers = defineJourney({
meta: {
trigger: { event: Events.DISCORD_MEMBER_JOINED },
entryLimit: "once",
},
run: async (user, ctx) => {
// A fresh join has a discord_id but no email yet.
const linked = await ctx.waitForEvent({
event: Events.CONTACT_LINKED,
timeout: days(2),
});
if (linked.timedOut) {
await ctx.trigger({ event: Events.DISCORD_NUDGE_LINK });
return;
}
await sendEmail({ template: "discord/welcome" });
},
});
The run
eventdiscord.member_joined · @newcomerenrolled
wait
contact.linked · timeout 2dwaiting.
linked · 6m
send
Welcome to the community — here's where to startdeliveredopenedclicked
What you can do

Six things it does the day you turn it on

Welcome people who join

A member joining your server starts a journey, so the first touch is automatic.

on join

Act on what they say

Messages and reactions become events you can trigger journeys on.

messages + reactions

Win back quiet members

Hogsend tracks when each member was last active, so you can re-engage the ones who went quiet.

last active

Link a Discord account to an email

A member runs /link and clicks the one-click confirm link from their inbox — now they're emailable too.

/link

Message them in Discord

Post lifecycle messages straight to a Discord channel, alongside the emails you already send.

in-channel

One profile across everything

Discord sits next to email, product activity, and PostHog on a single contact.

one contact
Linking

Tie a Discord account to an email — /link, then one click

The member runs /link, types their email into a private modal, and clicks the one-click confirm link in their inbox — the two become one contact, and they get the verified role.

src/discord.ts
// member runs /link inside Discord → an email modal opens
createDiscordConnector({
// mint a cold-connect token + email a one-click confirm link
requestConfirm: ({ discordUserId, email }) =>
discordColdConnect.mintConfirm({
platformUserId: discordUserId,
email,
}),
// clicking the emailed link folds discord_id + email onto
// one contact, grants the verified role, emits discord.linked
});
The run
event/link · @memberenrolled
send
Confirm your Discord link — expires in 15 mindeliveredopened
wait
discord.linked · timeout 15mwaiting.
linked ✓
merge
one contact
Get started

Set it up

Create a Discord bot, invite it to your server, paste the keys, and run it. The full walkthrough is in the docs.