Integrations

Trama in GRUPIM

Bind a GRUPIM server to a Trama board. Task updates post to a channel; slash commands and issue keys work the other way. Members link their accounts, so whatever they do from chat is done as them.

On this page

Connect a server

One bot serves every workspace, so a server is bound with a one-time code issued inside it: proof that the person connecting it runs the server. You need to be an admin of the Trama workspace, and someone with Manage Server in GRUPIM.

  1. Invite the bot

    In Trama, open Workspace settingsIntegrationsGRUPIM and choose Invite bot. Adding it to a server needs Manage Server.
  2. Get a code

    In the server, someone with Manage Server (or Administrator) runs /trama connect, ideally in the channel that should get updates. The bot answers privately with a code like ABCD-EFGH-JKLM: single use, valid for 10 minutes.
  3. Check the code

    Back in Trama, paste it and choose Check code. You see the server, who asked for the code and its channels, with the one where the command ran already picked.
  4. Pick the channel and the board

    Choose where updates go and which board the server works with, then Connect GRUPIM.

One server, one workspace

Only the server that issued the code can be bound, and a connected server answers “already connected”. To move it to another workspace, disconnect it in the old one and run /trama connect again.

Commands that read or change tasks run as a Trama user, so each member links their GRUPIM account once:

  1. Run /trama link in the server. The bot answers privately with a link that lasts 10 minutes.
  2. Open it while signed in to Trama. Check that the GRUPIM username is yours, then choose Link account.

Workspace admins can also link members by hand, or match GRUPIM and Trama usernames in one go, from the GRUPIM card in Workspace settingsIntegrations.

Only open your own link

Confirming someone else's link would let their GRUPIM account act as you in Trama. If a link reaches you from someone else, ignore it.

Commands

CommandWhat it does
/trama connectManage ServerA code to bind this server to a Trama workspace.
/trama linkAnyoneA private link to connect your GRUPIM account to Trama.
/boardAnyoneA digest of the bound board: open and overdue cards per column.
/task createLinked, can edit the boardCreates a task from a name, with an optional body and column (by name; the board's To do column otherwise).
/task showLinked, can see the boardShows a task by its key.
/task moveLinked, can edit the boardMoves a task (key) to a column, by name.
/task from-threadLinked, can edit the boardInside a thread: creates a task whose description holds the thread’s recent messages (up to 30). The title is the thread’s name unless you give one.
/assignLinked, can edit the boardAssigns a task (key) to a mentioned user who is linked and already on the board.

Issue keys in chat

Type a key like ACME-42 in a message and the bot replies with a preview: title, column, assignees and due date, never the description, since the channel may include people who can't see the board. Up to three keys per message.

  • Only messages from linked members who can see the board get a preview.
  • Messages that already contain a link to the task, and messages from bots, are left alone.

Channel updates

When a card on the bound board is created, moved, commented, assigned or archived, the bot posts an update to the channel. Choose which of these to post under Post when a task is on the GRUPIM card; with none chosen, nothing is posted and the commands still work.

  • What members do through the bot is not echoed back: creating a task with /task create doesn't post a “created” update.
  • Cards moved by a pull request (see GitHub & GitLab) post a “moved” update like any other move.
  • Disconnecting removes the bot's webhook from the channel.

Permissions

  • The bot acts as the linked Trama user: tasks are created by them, comments and moves show their name, and notifications come from them.
  • Creating, moving, assigning and /task from-thread need edit rights on the bound board. /task show and previews need to see it. /board works before anyone links.
  • /assign only assigns people who are already on the board; it never adds anyone to it.

How to test

A walk through every part of the integration, for a new setup or after a change.

  1. Connect

    A workspace admin invites the bot; a server manager runs /trama connect; the admin pastes the code, picks the channel and the board and connects. A member without Manage Server gets a refusal from /trama connect.
  2. Link

    Run /trama link, open the link signed in to Trama as a workspace member and confirm. The member shows as linked on the GRUPIM card. Optionally link a second member by hand, or match usernames.
  3. Create

    As a linked member, /task create. The card appears on the bound board, created by that member (not by whoever installed the bot), and the channel gets no “created” update for it.
  4. Preview

    As a linked member, type the new key (PREFIX-N) in the channel: one preview, without the description. An unlinked member typing it gets nothing.
  5. Show, move, digest, assign

    Run /task show, /task move and /board against that key, then /assign it to a linked member.
  6. Unlinked

    An unlinked member running /task create is told to run /trama link first; /assign to an unlinked member fails with a clear message.
  7. Updates from Trama

    Drag the card to another column in Trama: the channel gets “moved to” the new column. Comment on it, then archive it: one update each, if those events are on.
  8. From a thread

    Inside a thread, /task from-thread creates a card whose description holds the thread's recent messages.
  9. Disconnect

    Disconnect in Trama. The webhook is gone from the channel, and the server's commands answer “Guild not connected”.

Running your own deployment?

The API needs the GRUPIM_* settings and LIXTA_BOT_SECRET, the bot needs the same secret, and the GRUPIM application needs the Message Content intent for previews. Until then the GRUPIM card says “Not set up on this server”.

More