code: func (mod *GitterBee) Action(action bees.Action) []bees.Placeholder {
  	outs := []bees.Placeholder{}
  	switch action.Name {
  
  	case "send":
  		var room string
  		var message string
  
  		action.Options.Bind("room", &room)
  		action.Options.Bind("message", &message)
  
  		roomID, err := mod.client.GetRoomId(room)
  		if err != nil {
  			mod.LogErrorf("Failed to fetch room ID from uri: %v", err)
  			return outs
  		}
  
  		if _, err = mod.client.SendMessage(roomID, message); err != nil {
  			mod.LogErrorf("Failed to send message: %v", err)
  			return outs
  		}
  
  	case "join":
  		var room string
  		action.Options.Bind("room", &room)
  
  		if err := mod.join(room); err != nil {
  			mod.LogErrorf("Failed to join room: %v", err)
  		}
  
  	case "leave":
  		var room string
  		action.Options.Bind("room", &room)
  
  		err := mod.leave(room)
  		if err != nil {
  			mod.LogErrorf("Can't leave room: %v", err)
  		} else {
  			mod.Logln("Left room:", room)
  		}
  
  	default:
  		panic("Unknown action triggered in " + mod.Name() + ": " + action.Name)
  	}
  
  	return outs
  }
docs: // Action triggers the actions passed to it.