Message Subject

Fetch the parent resource that a message is about.

When your bot receives a comment on a Linear issue, GitHub PR, or Notion page, message.subject resolves the parent resource so your handler knows what the conversation is about.

Usage

lib/bot.ts
bot.onNewMention(async (thread, message) => {
  const subject = await message.subject;

  if (subject) {
    await thread.post(
      `This is about: ${subject.title} (${subject.status})\n${subject.url}`
    );
  }
});

On Linear, GitHub, and Notion, comment webhooks deliver the comment text but not the full parent resource — message.subject fetches it from the platform API on first access. The result is cached on the message instance. On chat platforms (which have no parent-resource concept), or if the API call fails, it returns null.

See MessageSubject for the full type shape.

Platform support

Platformmessage.subject returns
LinearParent issue (from comment webhooks)
GitHubParent issue or PR (from comment webhooks)
NotionParent page (from comment webhooks)

All other platforms return null.

User info

For user profile details, use bot.getUser:

lib/bot.ts
bot.onNewMention(async (thread, message) => {
  const user = await bot.getUser(message.author);
  if (user) {
    await thread.post(`Hi ${user.fullName} (${user.email})`);
  }
});

For anything beyond message.subject, access the platform's typed API client via bot.getAdapter("github").octokit or bot.getAdapter("linear").linearClient.

Read more