수신 웹훅
외부 도구에서 실시간 데이터를 보내거나 받습니다. Mattermost에서 수신 웹훅을 사용하려면 기본 설정만 필요합니다. Mattermost의 수신 웹훅 사용 사례 몇 가지를 소개합니다: Prometheus나 Datadog과 같은 모니터링 시스템에서 실시간 알림을 전용 Mattermost 채널로 전송하여 팀이 시스템 문제나 다운타임에 즉시 알림받을 수 있도록 합니다.
기술적 복잡도: 코드 불필요
외부 도구에서 실시간 데이터를 보내거나 받습니다. 웹훅은 가볍고 JSON 페이로드를 사용하는 HTTP POST 요청을 사용하기 때문에 최소한의 코딩만으로 거의 모든 도구나 플랫폼에서 쉽게 설정할 수 있습니다.
Mattermost에서 수신 웹훅을 사용하려면 기본 설정만 필요합니다. Mattermost 인터페이스를 사용하여 웹훅 URL을 생성한 다음, 다른 서비스가 해당 주소로 데이터를 전송하도록 지정합니다. 이벤트를 트리거하는 외부 서비스가 대부분의 최신 애플리케이션과 플랫폼에서 지원하는 웹훅 또는 HTTP POST 요청을 통해 데이터를 전송할 수 있는 경우 코딩이 필요하지 않습니다. 설정은 일반적으로 Mattermost 웹훅 URL을 서비스의 설정에 붙여넣고 전송할 이벤트 유형을 선택하는 것으로 이루어집니다.
사용 예시#
Mattermost의 수신 웹훅 사용 사례 몇 가지를 소개합니다:
모니터링 알림
Prometheus나 Datadog과 같은 모니터링 시스템에서 실시간 알림을 전용 Mattermost 채널로 전송하여 팀이 시스템 문제나 다운타임에 즉시 알림받을 수 있도록 합니다.
빌드 및 배포 알림
Jenkins나 GitLab CI와 같은 CI/CD 파이프라인에서 채널로 자동화된 업데이트를 게시하여 개발자가 빌드 상태, 테스트 결과 및 배포 진행 상황을 파악할 수 있도록 합니다.
고객 지원 업데이트
Zendesk나 ServiceNow와 같은 시스템에서 새 지원 티켓 알림을 지원 채널로 전달하여 팀이 수신 요청에 신속하게 대응할 수 있도록 합니다.
생성#
- Mattermost에서 제품 메뉴 > 통합 으로 이동합니다. 통합 옵션이 없으면 Mattermost 서버에서 수신 웹훅이 활성화되지 않았거나 관리자가 아닌 사용자에게 비활성화되어 있을 수 있습니다. 시스템 관리자는 시스템 콘솔 > 통합 > 통합 관리 에서 활성화할 수 있습니다.
- 통합 페이지에서 수신 웹훅 을 선택합니다.
- 수신 웹훅 추가 를 선택합니다.
- 웹훅의 이름과 설명을 입력한 다음 채널을 선택합니다. 이 채널에 잠금 을 선택하여 봇 게시물을 특정 채널로 제한하거나, 수신 웹훅 생성자가 구성원인 공개 채널 또는 비공개 채널에 게시할 수 있도록 허용할 수 있습니다. 관리자는 시스템 콘솔 > 통합 > 통합 관리 를 통해 모든 수신 웹훅에 대해 채널 잠금을 적용할 수 있습니다. 저장 을 선택합니다.
- 완료 를 선택하여 확인합니다. Mattermost가 고유한 웹훅 URL을 생성하며, 다음과 같이 표시됩니다:




https://your-mattermost-server.com/hooks/xxx-generatedkey-xxx. 이 URL을 비밀로 취급하세요. 이 URL을 가진 사람은 누구나 Mattermost 인스턴스에 메시지를 게시할 수 있습니다.
사용#
메시지를 게시하려면 애플리케이션이 JSON 페이로드를 요청 본문에 포함하여 웹훅 URL에 HTTP POST 요청을 전송해야 합니다.
curl -i -X POST -H 'Content-Type: application/json' -d '{"text": "Hello, this is some text\nThis is more text. :tada:"}' https://your-mattermost-server.com/hooks/xxx-generatedkey-xxx
성공적인 요청은 응답 본문에 `ok`가 포함된 HTTP 200 응답을 받습니다.
Slack 수신 웹훅과의 호환성을 위해 Content-Type 헤더가 설정되지 않은 경우 요청 본문 앞에 payload= 를 붙여야 합니다.
게시물 예시#
다음은 수신 웹훅을 사용하여 게시된 간단한 메시지의 예시입니다:





파라미터#
JSON 페이로드에는 다음 파라미터가 포함될 수 있습니다:
| 파라미터 | 필수 여부 | 설명 |
|---|---|---|
text | 예(attachments가 설정되지 않은 경우) | 마크다운 형식 메시지. 알림에 @<username>, @channel, @here를 사용합니다. |
channel | 아니오 | 기본 채널을 재정의합니다. 채널의 이름(예: town-square)을 사용합니다. 표시 이름은 사용하지 마세요. @<username>을 사용하여 다이렉트 메시지를 전송합니다. 웹훅은 공개 채널과 생성자가 구성원인 비공개 채널에 게시할 수 있습니다. |
username | 아니오 | 기본 사용자 이름을 재정의합니다. 통합이 사용자 이름을 재정의할 수 있도록 허용 설정이 활성화되어야 합니다. |
icon_url | 아니오 | 기본 프로필 사진 URL을 재정의합니다. 통합이 프로필 사진 아이콘을 재정의할 수 있도록 허용 설정이 활성화되어야 합니다. |
icon_emoji | 아니오 | 이모지로 icon_url을 재정의합니다. 이모지 이름(예: :tada:)을 사용합니다. 통합이 프로필 사진 아이콘을 재정의할 수 있도록 허용 설정이 활성화되어야 합니다. |
attachments | 예(text가 설정되지 않은 경우) | 더 풍부한 형식을 위한 메시지 첨부 개체의 배열. |
type | 아니오 | 주로 플러그인이 사용하는 게시물 유형을 설정합니다. 설정된 경우 custom_으로 시작해야 합니다. |
props | 아니오 | 메타데이터 저장을 위한 JSON 개체. card 속성을 사용하여 게시물의 정보 패널(RHS)에 마크다운 형식의 추가 텍스트를 표시할 수 있습니다. Mattermost v5.14 이상에서 사용 가능하며, 모바일에서는 아직 지원되지 않습니다. |
priority | 아니오 | 메시지의 우선순위를 설정합니다. 메시지 우선순위 를 참조하세요. |
파라미터를 포함한 예시#
{
"channel": "town-square",
"username": "test-automation",
"icon_url": "https://mattermost.com/wp-content/uploads/2022/02/icon.png",
"text": "#### Test results for July 27th, 2017\n@channel please review failed tests.\n\n| Component | Tests Run | Tests Failed |\n|:-----------|:-----------:|:-----------------------------------------------|\n| Server | 948 | :white_check_mark: 0 |\n| Web Client | 123 | :warning: 2 [(see details)](https://linktologs) |\n| iOS Client | 78 | :warning: 3 [(see details)](https://linktologs) |"
}
렌더링 결과:

Card Prop을 포함한 예시#
props 내부의 card 속성을 사용하면 게시물에 정보 아이콘이 표시됩니다. 아이콘을 클릭하면 오른쪽 사이드바가 열려 내용이 표시됩니다.
{
"channel": "town-square",
"username": "Winning-bot",
"text": "#### We won a new deal!",
"props": {
"card": "Salesforce Opportunity Information:\n\n [Opportunity Name](https://salesforce.com/OPPORTUNITY_ID)\n\n-Salesperson: **Bob McKnight** \n\n Amount: **$300,020.00**"
}
}

Slack 호환성#
Mattermost는 마이그레이션을 쉽게 하기 위해 Slack의 웹훅 형식과의 호환성을 제공합니다.
Slack 데이터 형식 변환#
Mattermost는 Slack 형식의 JSON 페이로드를 자동으로 변환합니다:
<https://mattermost.com/>은 링크로 렌더링됩니다.<https://mattermost.com/|Click here>는 링크 텍스트로 렌더링됩니다.<userid>는 사용자 멘션을 트리거합니다.<!channel>,<!here>,<!all>은 채널 전체 멘션을 트리거합니다.
@username으로 채널 이름을 재정의하여 다이렉트 메시지를 보낼 수도 있습니다(예: "channel": "@jim").
GitLab에서 Mattermost 웹훅 사용#
GitLab의 내장 Slack 통합을 사용하여 Mattermost로 알림을 보낼 수 있습니다:
- GitLab에서 설정 > 서비스 로 이동하여 Slack 을 선택합니다.
- Mattermost 수신 웹훅 URL을 붙여넣습니다.
- 선택적으로 사용자 이름 을 설정합니다. 채널 필드는 비워둡니다.
- 저장 을 선택하고 통합을 테스트합니다.
알려진 Slack 호환성 문제#
<#CHANNEL_ID>를 사용한 채널 참조는 지원되지 않습니다.<!everyone>및<!group>은 지원되지 않습니다.<em>bold</em>형식은 지원되지 않습니다. 대신<strong>bold</strong>를 사용하세요.- 웹훅을 생성한 사용자에게 다이렉트 메시지를 보낼 수 없습니다.
문제 해결#
수신 웹훅을 디버그하려면 시스템 관리자가 웹훅 디버깅 을 활성화하고 시스템 콘솔 > 로깅 에서 콘솔 로그 레벨 을 DEBUG 로 설정할 수 있습니다.
일반적인 오류 메시지:
- 채널을 찾을 수 없음:
channel파라미터에 지정된 채널이 존재하지 않습니다. - 사용자를 찾을 수 없음: 지정된 사용자가 존재하지 않습니다.
- 수신 데이터를 파싱할 수 없음: JSON 페이로드의 형식이 잘못되었습니다.
Content-Type: application/json 헤더가 포함되어 있는지 확인합니다.
수신 웹훅으로 더 많은 작업하기#
웹훅 메시지에 버튼, 메뉴 및 기타 인터랙티브 요소를 포함하여 기본 메시지 게시를 풍부하고 인터랙티브한 알림으로 변환하면 팀에 더욱 매력적이고 유용합니다.
- 메시지 첨부: 더 빠른 분류 및 이해를 위해 상태, 우선순위, 필드, 링크 또는 이미지와 같은 풍부하고 구조화된 요약을 표시합니다. (Slack 호환 스키마.)
- 인터랙티브 메시지: 도구나 컨텍스트를 전환하지 않고도 즉각적인 사용자 응답을 가능하게 하는 승인, 할당 또는 에스컬레이션과 같은 버튼이나 메뉴로 알림을 실행 가능하게 만듭니다.
- 인터랙티브 대화 상자: 구조화된 입력이나 확인이 필요한 경우(예: "메모와 함께 승인" 또는 "사용자에게 할당") 사용자를 성공적인 결과로 안내합니다. 필수 필드, 최소/최대 입력 길이, 서버 기반 사용자/채널 선택기, 검증된 기본값, 인라인 필드 오류, 자리 표시자, 도움말 텍스트로 데이터 품질을 개선합니다.
- 메시지 우선순위: 중요한 게시물을 높이고 선택적으로 확인이나 지속적인 알림을 요청하려면
priority를 설정합니다.
