동작 — 무엇을 하나
동작은 워크플로가 실제로 하는 일이에요. 팔레트의 액션 묶음에 들어 있어요.
동작은 위에서부터 순서대로 하나씩 실행돼요. 앞 동작이 권한에 막히면 그 실행은 거기서 끝나요.
[!팁] 급하신가요? 처음에는 Send Message 하나면 충분해요. 역할이나 채널을 건드리는 동작은 권한을 한 번 더 확인한 뒤에 붙이는 게 편해요.
메시지
| 동작 | 하는 일 |
|---|---|
| Send Message | 채널이나 DM으로 메시지를 보내요. 임베드와 버튼도 같이 붙일 수 있어요 |
| Reply Message | 어떤 메시지에 답글로 달아요 |
| Edit Message | 이미 보낸 메시지를 고쳐요 |
| Delete Message | 메시지를 지워요 |
| Add Reaction | 메시지에 반응을 붙여요 |
| Remove Reaction | 메시지에서 반응을 떼요 |
| Pin Message · Unpin Message | 메시지를 고정하거나 풀어요 |
메시지 ID와 채널 ID를 비워 두면 워크플로를 깨운 그 메시지와 채널을 써요. 그래서 “올라온 메시지에 반응 달기” 같은 흐름은 칸을 채우지 않아도 돼요.
Send Message 에서 DM 보내기를 켜면 사건을 일으킨 사람에게 개인 메시지로 가요. 상대가 DM을 닫아 두었으면 가지 않아요.
멤버와 역할
| 동작 | 하는 일 |
|---|---|
| Add Role · Remove Role | 역할을 주거나 뺏어요 |
| Timeout Member | 정한 초 동안 타임아웃을 걸어요 |
| Set Nickname | 별명을 바꾸거나 지워요 |
| Kick Member | 멤버를 내보내요 |
| Ban Member · Unban Member | 차단하거나 차단을 풀어요 |
유저 ID를 비워 두면 사건을 일으킨 사람이 대상이 돼요.
자동화가 손대지 않는 역할
역할 동작은 아래에 해당하면 그냥 건너뛰어요. 워크플로가 자기를 만든 사람보다 센 역할을 뿌리지 못하게 하려는 장치예요.
- @everyone 역할
- 다른 앱이나 부스트가 관리하는 역할
- 봇의 가장 높은 역할보다 위에 있는 역할
- 관리자 · 서버 관리 · 역할 관리 · 웹후크 관리 권한을 가진 역할
채널과 스레드
| 동작 | 하는 일 |
|---|---|
| Create Channel | 텍스트나 음성 채널을 만들어요. 카테고리, 주제, 슬로우모드도 같이 정해요 |
| Update Channel | 이름, 주제, 슬로우모드, 카테고리를 바꿔요 |
| Delete Channel | 채널을 지워요 |
| Create Thread | 채널이나 메시지에 스레드를 열어요 |
값 저장하기
| 동작 | 하는 일 |
|---|---|
| Store Set | 이름을 붙여 값을 저장해요 |
| Store Increment | 저장된 숫자를 올려요 |
| Store Decrement | 저장된 숫자를 내려요 |
저장한 값은 {store.이름} 으로 다시 꺼내 쓸 수 있어요. 실행이 끝나도 남고, 서버 단위로 보관돼요. 자세한 건 조건과 변수에 있어요.
티켓
| 동작 | 하는 일 |
|---|---|
| Create Ticket | 사용자용 티켓 채널을 열어요 |
| Close Ticket | 티켓 채널을 닫아요 |
두 동작은 티켓 기능이 켜져 있어야 실제로 움직여요. 꺼져 있으면 그 단계는 아무 일도 하지 않고 지나가요.
기록
Append Log 는 이번 실행의 기록에 한 줄을 덧붙여요. 채널에 남는 메시지가 아니라, 이 실행이 어디까지 갔는지 나중에 알아보려고 쓰는 조각이에요.
흐름 조각 네 개
팔레트의 흐름 묶음이에요.
| 조각 | 하는 일 |
|---|---|
| Delay | 정한 시간만큼 쉬어요 |
| Stop | 여기서 실행을 끝내요. 이유를 적어 둘 수 있어요 |
| Set Variable | 이름을 붙여 값을 담아요 |
| Text Edit | 글·숫자·참거짓 값을 만들어 변수에 담아요 |
[!주의] 흐름 조각에는 다음으로 나가는 연결점이 없어요 그래서 이 넷은 그 갈래의 마지막 조각이 돼요. 뒤에 더 이어야 하는 일이 있다면 흐름 조각을 그 앞에 두지 말아 주세요.
Delay 는 실행 시간을 나눠 써요
지연은 그 실행에 주어진 시간 안에서만 쉬어요. 60초를 적어도 남은 실행 예산까지만 쉬고 넘어가요. 예산이 이미 다 됐으면 쉬지 않고 지나가요.
기본 실행 예산은 1초라, 지연은 초 단위 뜸을 들이는 정도에 맞아요. “한 시간 뒤에 보내기” 같은 일은 지연으로 만들 수 없어요. 그런 일은 공지의 예약 기능이 맡아요.
동작마다 필요한 봇 권한
실행이 시작되기 전에 SOLE이 봇 권한을 먼저 확인해요. 하나라도 없으면 그 실행은 아무것도 하지 않고 끝나요. 반쯤 실행되는 것보다 낫기 때문이에요.
| 동작 | 봇에게 필요한 권한 |
|---|---|
| Send Message, Reply Message | 메시지 보내기 |
| Edit Message, Delete Message, Remove Reaction, Pin Message, Unpin Message | 메시지 관리 |
| Add Reaction | 반응 추가 |
| Add Role, Remove Role | 역할 관리 |
| Set Nickname | 별명 관리 |
| Timeout Member | 멤버 관리(타임아웃) |
| Kick Member | 멤버 추방 |
| Ban Member, Unban Member | 멤버 차단 |
| Create Channel, Update Channel, Delete Channel, Create Thread, Create Ticket, Close Ticket | 채널 관리 |
조건 분기 안에 숨어 있는 동작도 똑같이 세요. 분기 안쪽에만 역할 동작이 있어도 역할 관리 권한이 필요해요.
잘 안 되나요?
| 이런가요 | 이렇게 해 보세요 |
|---|---|
| 아무 동작도 안 하고 실행이 끝나요 | 위 권한 표를 보고 봇 역할에 그 권한이 있는지 확인해 주세요 |
| 역할이 안 붙어요 | 그 역할이 봇 역할보다 위에 있거나, 관리 권한을 가진 역할일 수 있어요. 이 경우는 일부러 건너뛰어요 |
| 메시지를 고치거나 지우는 동작이 조용히 넘어가요 | 대상 메시지를 못 찾은 거예요. 채널 ID와 메시지 ID를 같이 확인해 주세요 |
| 티켓 동작이 아무 일도 안 해요 | 티켓 기능이 꺼져 있으면 그 단계는 지나가요 |
| Delay 를 길게 넣었는데 바로 다음으로 넘어가요 | 지연은 남은 실행 예산까지만 쉬어요. 한도와 안전장치를 봐 주세요 |