Messaging services

JavaScript
await services.telegram.send({
  botToken: secrets.TELEGRAM_BOT_TOKEN,
  conversationId: context.payload.conversationId,
  text: "Hello from WOML",
  replyToMessageId: context.payload.messageId
}, { name: "telegram-reply" });

services.discord.send()

JavaScript
await services.discord.send({
  botToken: secrets.DISCORD_BOT_TOKEN,
  conversationId: context.payload.conversationId,
  text: "Hello from WOML",
  replyToMessageId: context.payload.messageId
}, { name: "discord-reply" });

Telegram and Discord return { provider, conversationId, messageId, acceptedAt, threadId? }.

services.whatsapp.send()

JavaScript
await services.whatsapp.send({
  accessToken: secrets.WHATSAPP_ACCESS_TOKEN,
  phoneNumberId: "123456789012345",
  conversationId: context.payload.conversationId,
  template: {
    name: "woml_reply_v1",
    language: "en_US",
    parameters: ["Hello from WOML"]
  }
}, { name: "whatsapp-reply" });

WhatsApp v1 sends approved templates, not arbitrary proactive free-form text. The return shape matches the other messaging services.

services.queue and services.slack.send() are not public v1 services. Slack remains available as a trigger and notification provider.