Polls on iMessage are best delivered as interactive mini-app cards. Compose a native-style poll with flow() or register a hosted poll app and send it with app():
import { flow } from "skyline-ts";

await space.send(
  flow({
    caption: "Lunch Friday?",
    flow: {
      screens: [
        {
          id: "poll",
          title: "Pick a time",
          components: [
            {
              type: "options",
              key: "time",
              options: [
                { id: "12", label: "12:00" },
                { id: "13", label: "13:00" },
              ],
              onSelect: "submit",
            },
          ],
        },
      ],
    },
  })
);

Inbound selections

When a recipient submits a choice, the inbound flow content carries state with the selected keys. Read it in your agent loop and reply with the next screen or a confirmation message.

WhatsApp Business

Interactive list and button messages map to wa.interactive() — see WhatsApp Business conversations.