아웃고잉 웹훅
Entry, Professional, Enterprise, Enterprise Advanced 플랜에서 사용할 수 있습니다.
기술 난이도: Low-code
아웃고잉 웹훅을 사용하면 외부 서비스가 버튼, 메뉴를 비롯한 대화형 요소로 구성된 구조적 콘텐츠인 Mattermost Blocks로 응답하도록 하여, Mattermost 안에서 리치하고 대화형인 경험을 만들 수 있습니다. 또한 이러한 응답은 사용자가 Mattermost에서 직접 추가 정보를 입력하는 대화형 다이얼로그 폼을 트리거할 수도 있습니다. 이러한 기능을 함께 사용하면 단순한 키워드 트리거가, 팀이 외부 시스템과 상호작용하는 방식을 간소화하는 강력한 제품 내 워크플로로 바뀌며, 이 모든 것을 최소한의 코딩으로 구현할 수 있습니다.
Mattermost에서 아웃고잉 웹훅을 설정하는 데는 코딩이 필요하지 않습니다. 다만 HTTP POST 요청을 받는 외부 서비스는 그 데이터를 처리한 뒤 Mattermost로 돌려보낼 메시지를 구성해 응답해야 합니다. 여기에는 보통 요청을 파싱하고 JSON 응답 페이로드를 만드는 가벼운 코딩이 필요하지만, 많은 자동화 플랫폼은 맞춤 코드 없이도 이를 처리합니다.
아웃고잉 웹훅을 자세히 알아보세요.
활용 사례 예시
Mattermost에서 아웃고잉 웹훅을 활용하는 몇 가지 예시입니다.
이슈 트래킹 연동
사용자가 채널에 bug를 입력하면 아웃고잉 웹훅이 해당 메시지를 외부 서비스로 보내고, 그 서비스가 세부 정보를 파싱해 Mattermost에 대화형 다이얼로그로 응답합니다. 사용자는 우선순위, 설명, 담당자 같은 필드를 입력할 수 있으며, 다이얼로그를 제출하면 티켓 관리 소프트웨어에 티켓이 자동으로 생성됩니다.
지식 베이스 조회
docs 같은 키워드는 아웃고잉 웹훅을 트리거해 문서 서비스를 조회하고, 추천 문서 목록을 Mattermost Blocks로 담은 응답을 반환합니다. 각 항목에는 클릭할 수 있는 버튼이나 메뉴가 포함됩니다. 사용자는 Mattermost를 벗어나지 않고 검색을 다듬거나 링크를 열 수 있습니다.
보안 인시던트 정보 보강
보안 채널에서 ioc(indicator of compromise) 같은 키워드를 입력하면 아웃고잉 웹훅이 위협 인텔리전스 플랫폼을 조회하도록 트리거할 수 있습니다. 응답으로는 평판 점수, 관련 인시던트, 그리고 경보를 에스컬레이션·조사·해제하는 빠른 실행 버튼을 담은 Mattermost Blocks를 반환할 수 있습니다.
생성
-
Mattermost에서 제품 메뉴 > 연동으로 이동합니다. 연동 항목이 보이지 않는다면 Mattermost 서버에서 아웃고잉 웹훅이 활성화되어 있지 않거나 관리자가 아닌 사용자에게 비활성화되어 있을 수 있습니다. 시스템 관리자는 시스템 콘솔 > 연동 > 연동 관리에서 활성화할 수 있습니다.

-
연동 페이지에서 아웃고잉 웹훅을 선택합니다.

-
아웃고잉 웹훅 추가를 선택합니다.

-
웹훅의 이름과 설명을 입력합니다.
-
요청의 콘텐츠 유형을 지정합니다.
application/json은 JSON 객체를 전송합니다.application/x-www-form-urlencoded는 매개변수를 URL에 인코딩합니다.
-
채널 또는 하나 이상의 트리거 단어를 지정합니다(둘 다 지정할 수도 있습니다).
- 채널을 지정하면 웹훅은 해당 채널의 메시지에 대해서만 실행됩니다.
- 트리거 단어를 지정하면 웹훅은 메시지가 그중 한 단어로 시작할 때만 실행됩니다.
- 둘 다 지정하면 메시지가 두 조건을 모두 충족해야 합니다.
- 채널을 비워 두면 웹훅은 팀의 모든 공개 채널을 수신합니다.
- 트리거 단어를 비워 두면 웹훅은 선택한 채널의 모든 메시지에 응답합니다.

-
HTTP POST 요청을 보낼 콜백 URL을 하나 이상 설정합니다. 저장을 선택합니다.

-
토큰 값을 복사합니다. 이 토큰은 요청이 Mattermost에서 온 것인지 검증하는 데 사용됩니다.

사용
메시지가 웹훅을 트리거하면 Mattermost는 지정한 콜백 URL로 HTTP POST 요청을 보냅니다.
요청 페이로드
요청 본문에는 다음 데이터가 담깁니다(선택한 콘텐츠 유형에 따라 JSON 또는 URL 인코딩 형식입니다).
| 매개변수 | 설명 |
|---|---|
token | 웹훅을 생성할 때 발급된 토큰입니다. |
team_id | 메시지가 게시된 팀의 ID입니다. |
team_domain | 팀의 도메인입니다. |
channel_id | 메시지가 게시된 채널의 ID입니다. |
channel_name | 채널의 이름입니다. |
timestamp | 메시지가 게시된 시각입니다. |
user_id | 메시지를 게시한 사용자의 ID입니다. |
user_name | 메시지를 게시한 사용자의 사용자 이름입니다. |
post_id | 게시물의 ID입니다. |
text | 메시지의 전체 텍스트입니다. |
trigger_word | 일치한 트리거 단어입니다. |
애플리케이션은 요청이 Mattermost에서 온 것인지 확인하기 위해 token을 검증해야 합니다.
응답 페이로드
애플리케이션은 JSON 객체로 POST 요청에 응답해 Mattermost에 메시지를 게시할 수 있습니다.
{
"text": "| Component | Tests Run | Tests Failed |\n|:-----------|:----------|:-------------|\n| Server | 948 | :white_check_mark: 0 |"
}
이 응답은 Mattermost에서 다음과 같이 렌더링됩니다.

응답 매개변수
JSON 응답에는 다음 매개변수를 담을 수 있습니다.
| 매개변수 | 설명 |
|---|---|
text |
(props.mm_blocks가 설정되지 않은 경우 필수) 마크다운 형식의 메시지입니다. |
response_type |
웹훅을 트리거한 메시지에 답글로 응답하려면 comment로 설정합니다. 기본값은 post이며, 새 메시지를 생성합니다. |
username |
기본 사용자 이름을 재정의합니다. 연동에서 사용자 이름 재정의 허용 설정이 활성화되어 있어야 합니다. |
icon_url |
기본 프로필 사진을 재정의합니다. 연동에서 프로필 사진 아이콘 재정의 허용 설정이 활성화되어 있어야 합니다. |
type |
게시물 유형을 설정하며, 주로 플러그인에서 사용합니다. 설정하는 경우 반드시 custom_으로 시작해야 합니다. |
props |
메타데이터를 저장하는 JSON 객체입니다. 리치하고 대화형인 콘텐츠에는 Mattermost Blocks를 사용하세요. |
priority |
메시지의 우선순위를 설정합니다. 메시지 우선순위를 참고하세요. |
매개변수를 사용한 예시
{
"response_type": "comment",
"username": "test-automation",
"icon_url": "https://mattermost.com/wp-content/uploads/2022/02/icon.png",
"text": "#### Test results for July 27th, 2017\n@channel here are the requested test results.",
"props": {
"test_data": {
"server": 948,
"web": 123,
"ios": 78
}
}
}
이 응답은 웹훅을 트리거한 원래 메시지에 스레드 답글을 남깁니다.

응답에 Mattermost Blocks를 포함하면 더 고급 워크플로를 만들 수 있습니다.
아웃고잉 웹훅 더 활용하기
웹훅 응답에 버튼, 메뉴를 비롯한 대화형 요소를 반환하면 키워드로 트리거되는 콜백을 채널 안에서 안내되는 워크플로로 바꿔, 사용자가 곧바로 조치를 취할 수 있게 됩니다.
- Mattermost Blocks: 텍스트, 버튼, 메뉴를 갖춘 구조적이고 대화형인 콘텐츠를 반환합니다.
- Interactive Dialogs: 버튼이나 메뉴 클릭에 추가 정보가 필요할 때(예: "메모와 함께 확인", "사용자에게 할당") 다이얼로그를 열어 구조화된 입력을 수집합니다. 필수 필드, 최소·최대 길이, 서버가 제공하는 사용자·채널 선택기, 검증된 기본값, 인라인 필드 오류, 플레이스홀더, 도움말 텍스트를 사용할 수 있습니다.
- Message Priority: 응답에
priority를 포함해 중요한 업데이트를 표시하고, 필요하면 확인 응답이나 지속 알림을 요청합니다.
- 아웃고잉 웹훅 응답은 Mattermost Blocks와 대화형 액션을 지원합니다. 사용자가 액션을 클릭하면 연동은 서명된 트리거 ID를 받아 다이얼로그 API로 대화형 다이얼로그를 열 수 있습니다. 응답 유형(in-channel과 ephemeral)으로 노출 범위를 제어할 수도 있습니다.
- 전용 아이덴티티나 권한 범위 지정이 필요하거나, 웹훅·명령어 흐름 밖에서 게시해야 하나요? 단순한 브랜딩을 위한 재정의보다 더 영구적인 해법이 필요하다면 봇 계정을 사용하세요.
- 명령어 백엔드에서 Mattermost API를 호출해야 한다면(예: 메시지 게시, ephemeral 게시물 작성, 대화형 다이얼로그 열기 등) 봇 사용자 개인용 액세스 토큰으로 인증하세요. 자동화에는 사람이나 시스템 관리자의 개인용 액세스 토큰을 사용하지 말고, 토큰을 주기적으로 교체하며 안전하게 보관하는 것을 권장합니다.
- 비공개 채널, 다이렉트 메시지, 자동 완성을 지원하고 싶으신가요? 기본 제공 슬래시 명령어를 사용하거나 맞춤 슬래시 명령어를 만드세요. 또한 Client Credentials OAuth 2.0 grant type을 사용해 내부 OAuth 인프라에서 호스팅하는 맞춤 연동과 Mattermost를 통합할 수 있습니다. Mattermost는 Slack용으로 작성된 연동을 Mattermost로 이전하는 것도 쉽게 할 수 있도록 지원합니다.