For the complete documentation index, see llms.txt. This page is also available as Markdown.

Twilio SMS 알림

Twilio SMS 서비스를 통해 알림을 보냅니다.

Twilio SMS 서비스에서 동적 워크플로 데이터 매개변수를 포함한 사용자 지정 메시지 콘텐츠, SMS 길이 제한에 대한 자동 메시지 잘라내기, 캐시 기반 세션 추적을 사용하는 쿨다운 제한, 그리고 모바일 알림, 긴급 알림, 실시간 통신 워크플로를 위한 선택적 비동기 백그라운드 실행을 통해 SMS 텍스트 메시지 알림을 보냅니다.

이 블록의 작동 방식

이 블록은 Twilio SMS API를 사용하여 전화번호로 SMS 텍스트 메시지를 보내며, 워크플로 실행 결과를 메시지 내용에 통합합니다. 이 블록은:

  1. 다음을 통해 싱크 비활성화 여부를 확인합니다 disable_sink 플래그(비활성화되어 있으면 전송하지 않고 즉시 반환)

  2. Twilio 자격 증명(Account SID 및 Auth Token)의 해시를 사용하여 쿨다운 추적용 캐시 키를 생성하고 cooldown_session_key (각 워크플로 단계마다 고유함)

  3. 캐시에서 마지막 알림 타임스탬프를 확인하여 쿨다운 기간을 검증합니다(활성화된 경우, 다음 범위 내의 알림을 제한합니다 cooldown_seconds 마지막으로 전송된 SMS의 시점 기준으로), 제한 상태를 반환합니다)

  4. 제공된 자격 증명에 대한 Twilio Client 인스턴스를 생성하거나 가져옵니다(효율성을 위해 자격 증명 해시에 따라 클라이언트를 캐시합니다)

  5. 동적 매개변수를 처리하여 메시지를 포맷합니다(다음과 같은 자리표시자를 바꿉니다 {{ $parameters.parameter_name }} 실제 워크플로 데이터로 message_parameters)

  6. 삽입 전에 매개변수 값을 변환하기 위해 선택적 UQL 작업을 적용합니다(예: 탐지에서 클래스 이름 추출, 지표 계산, 데이터 필터링) 다음을 사용하여 message_parameters_operations

  7. 메시지가 다음을 초과하면 잘라냅니다 length_limit 문자 수(잘라내기 표시를 덧붙임 [...] 잘림을 나타내기 위해)

  8. Twilio의 messages.create API를 사용하여 발신 번호에서 수신자 전화번호로 SMS 메시지를 보냅니다 messages.create API

  9. 캐시를 현재 알림 타임스탬프로 업데이트합니다(15분 후 만료)

  10. 다음에 따라 동기 또는 비동기 방식으로 실행합니다 fire_and_forget 설정:

    • 동기 모드 (fire_and_forget=False): Twilio API 호출 완료를 기다리고, 디버깅을 위해 실제 오류 상태를 반환합니다

    • 비동기 모드 (fire_and_forget=True): 백그라운드 작업으로 SMS를 전송하고, 워크플로는 즉시 계속되며, 오류 상태는 항상 False입니다

  11. 성공, 제한, 또는 오류를 나타내는 상태 출력을 반환합니다(가능한 경우 Twilio API 오류 세부정보 포함)

이 블록은 런타임에 워크플로 데이터로 대체되는 자리표시자 구문을 통해 동적 메시지 콘텐츠를 지원합니다. 메시지 매개변수는 원시 워크플로 출력이거나 UQL 작업을 사용해 변환할 수 있습니다(예: 속성 추출, 개수 계산, 값 필터링). SMS 메시지는 SMS 표준을 준수하고 메시지 전송 문제를 방지하기 위해 문자 제한을 초과하면 자동으로 잘립니다. 쿨다운은 세션 키를 사용하는 캐시 기반 추적을 통해 전송 간 최소 시간을 강제하여 SMS 스팸을 방지하며, 분산 또는 다중 인스턴스 환경에서 단계별 제한을 가능하게 합니다.

요구 사항

Twilio 계정 설정: SMS 기능이 있는 Twilio 계정이 필요합니다:

  • twilio_account_sid: Twilio Account SID(에서 찾을 수 있음 Twilio 콘솔)

  • twilio_auth_token: Twilio Auth Token(Twilio 콘솔에서 찾을 수 있음, 보안을 위해 비공개로 표시됨)

  • 자격 증명은 workflow 정의에 저장하는 대신 SECRET_KIND 선택자를 사용하여 워크플로 입력으로 제공하는 것이 보안상 권장됩니다

  • 보기 Twilio SMS 튜토리얼 설정 방법

전화번호 설정: 유효한 E.164 형식의 전화번호가 필요합니다(예: +1234567890):

  • sender_number: SMS를 발신할 Twilio 전화번호(반드시 Twilio에서 구매한 번호이거나 계정에 등록된 인증된 번호여야 함)

  • receiver_number: SMS를 수신할 대상 전화번호

쿨다운 세션 키: cooldown_session_key 는 워크플로에서 각 Twilio SMS Notification 단계마다 고유해야 하며, 단계별 쿨다운 추적을 올바르게 활성화해야 합니다. 쿨다운 메커니즘은 15분 만료 시간을 가진 캐시 기반 저장소를 사용하며, 쿨다운 초는 0에서 900(15분) 사이여야 합니다.

메시지 길이 제한: SMS 메시지의 기본 길이 제한은 160자입니다. 다음을 초과하는 메시지는 length_limit 자동으로 잘리며, 잘라내기 표시([...])가 추가됩니다. length_limit 를 필요에 맞게 조정하세요. 다만 SMS 표준은 일반적으로 단일 파트 메시지의 경우 160자, 멀티파트 메시지의 경우 세그먼트당 153자를 지원합니다.

일반적인 사용 사례

  • 긴급 경고 알림: 중요한 조건이 감지되면 모바일 장치로 SMS 경고를 보냅니다(예: 허가되지 않은 객체가 감지되면 보안 요원에게 경고, 시스템 이상이 발생하면 운영자에게 알림, 감지 횟수가 임계값을 초과하면 경고 전송). 시간에 민감한 사건에 대해 즉각적인 모바일 알림을 가능하게 합니다

  • 모바일 워크플로 업데이트: 워크플로 실행 상태와 중요한 결과에 대한 SMS 알림을 보냅니다(예: 배치 처리가 완료되면 운영자에게 알림, 긴급 실패 경고 전송, 시스템 상태 문제에 대한 경고). 자동화된 프로세스에 대한 모바일 가시성을 제공합니다

  • 감지 요약: 감지 결과와 주요 통계를 포함한 SMS 메시지를 보냅니다(예: 감지된 객체 수 공유, 분류 요약 전송, 중요한 감지 경고 포함). 이해관계자가 중요한 워크플로 출력을 모바일 장치에서 받을 수 있도록 합니다

  • 비상 알림: 비상 상황과 중요한 이벤트에 대해 긴급 SMS 경고를 보냅니다(예: 응급 구조 요원에게 경고, 유지보수 팀에 중요한 문제 알림, 즉시 시스템 장애 알림 전송). 비상 대응을 위한 신속한 모바일 통신을 가능하게 합니다

  • 실시간 모바일 모니터링: 실시간 모니터링 및 상태 알림을 위한 지속적인 SMS 업데이트를 보냅니다(예: 시스템 상태 문제 알림, 주기적 성능 경고 전송, 처리 마일스톤 경고). 운영 모니터링을 위한 모바일 가시성을 제공합니다

  • 온콜 알림: 근무 시간 외 또는 중요한 문제를 위해 대기 인원에게 SMS 알림을 보냅니다(예: 온콜 엔지니어에게 시스템 문제 경고, 온콜 보안 담당자에게 감지된 위협 알림, 근무 시간 외 사건 알림 전송). 온콜 직원과의 모바일 통신을 가능하게 합니다

다른 블록에 연결하기

이 블록은 워크플로 단계의 데이터를 받아 SMS 알림을 보냅니다:

  • 탐지 또는 분석 블록 뒤에서 (예: Object Detection, Instance Segmentation, Classification) 객체가 감지되거나 분류가 수행되거나 임계값을 초과할 때 긴급 모바일 경고 또는 요약을 보내 실시간 모바일 알림을 가능하게 합니다

  • 데이터 처리 블록 다음 (예: Expression, Property Definition, Detections Filter) 계산된 지표, 변환된 데이터 또는 필터링된 결과를 SMS 알림에 포함하여 처리된 데이터로 맞춤형 모바일 보고를 가능하게 합니다

  • 조건부 워크플로에서 (예: Continue If) 특정 조건이 충족될 때만 SMS 알림을 보내 이벤트 기반 모바일 경고 및 긴급 알림을 가능하게 합니다

  • 집계 블록 다음 (예: Data Aggregator) SMS를 통해 주기적인 분석 요약과 통계 보고서를 보내 스케줄된 모바일 업데이트와 추세 분석을 가능하게 합니다

  • 모니터링 워크플로에서 상태 업데이트, 오류 알림 또는 상태 점검 보고서를 모바일 장치로 보내 SMS를 통한 자동 시스템 모니터링 및 사고 관리를 가능하게 합니다

  • 비상 워크플로의 경우 즉각적인 모바일 알림이 중요한 경우(예: 보안 경고, 시스템 장애, 중요한 감지), 시간에 민감한 상황에 대한 신속한 모바일 통신을 가능하게 합니다

유형 식별자

단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/twilio_sms_notification@v1 워크플로우에 이 블록을 단계로 추가하려면.

속성

이름

유형

설명

참조

name

str

이 단계에 대한 고유 식별자를 입력하세요..

twilio_account_sid

str

Twilio API 인증에 사용되는 Twilio Account SID입니다. 다음 위치에서 찾을 수 있습니다 Twilio 콘솔 계정 정보 아래에 있습니다. 이 필드는 보안을 위해 비공개로 표시됩니다. workflow 정의에 저장하지 말고 SECRET_KIND 선택자를 사용하여 워크플로 입력으로 제공하는 것이 좋습니다. twilio_auth_token과 함께 사용하여 SMS 메시지 전송을 위한 Twilio API 요청을 인증합니다..

twilio_auth_token

str

Twilio API 인증에 사용되는 Twilio Auth Token입니다. 다음 위치에서 찾을 수 있습니다 Twilio 콘솔 계정 정보 아래에 있습니다('show'를 클릭하여 표시). 이 필드는 보안을 위해 비공개로 표시됩니다. workflow 정의에 저장하지 말고 SECRET_KIND 선택자를 사용하여 워크플로 입력으로 제공하는 것이 좋습니다. twilio_account_sid와 함께 사용하여 SMS 메시지 전송을 위한 Twilio API 요청을 인증합니다..

sender_number

str

SMS 메시지를 발신할 Twilio 전화번호입니다. E.164 형식(예: '+1234567890')이어야 하며, Twilio에서 구매한 번호이거나 Twilio 계정에 등록된 인증된 번호여야 합니다. 이 번호는 수신자가 받는 SMS 메시지에서 발신자로 표시됩니다. 번호는 Twilio 콘솔에서 구매하거나 테스트용으로 체험 번호를 사용할 수 있습니다..

receiver_number

str

SMS 메시지를 수신할 대상 전화번호입니다. E.164 형식(예: '+1234567890')이어야 합니다. Twilio 체험 계정의 경우 수신 번호는 Twilio 계정에서 인증되어야 합니다. 유료 계정의 경우 유효한 모든 전화번호로 보낼 수 있습니다. 이 번호가 알림을 받는 모바일 번호입니다..

message

str

SMS 메시지 내용(일반 텍스트)입니다. 다음 자리표시자 구문을 사용한 동적 매개변수를 지원합니다: {{ $parameters.parameter_name }}. 자리표시자는 런타임에 message_parameters의 값으로 대체됩니다. 메시지는 여러 줄 텍스트일 수 있지만 하나의 SMS로 전송됩니다. length_limit를 초과하는 메시지는 잘라내기 표시와 함께 자동으로 잘립니다. 예: 'Detected {{ $parameters.num_objects }} objects. Alert: {{ $parameters.classes }}.'.

message_parameters

Dict[str, Union[bool, float, int, str]]

메시지 플레이스홀더에 사용되는 매개변수 이름을 워크플로 데이터 소스에 매핑하는 사전입니다. 키는 메시지에서 다음과 같이 참조되는 매개변수 이름입니다 {{ $parameters.key }}, 값은 워크플로 단계 출력 또는 직접 값에 대한 선택기입니다. 이러한 값은 런타임에 메시지 플레이스홀더로 대체됩니다. 필요에 따라 message_parameters_operations를 사용해 대체 전에 매개변수 값을 변환할 수 있습니다..

message_parameters_operations

Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]]

메시지에 삽입하기 전에 매개변수 값을 변환하는 UQL 작업 체인에 message_parameters의 매개변수 이름을 매핑하는 선택적 사전입니다. 작업은 순서대로 적용됩니다(예: 감지에서 클래스 이름 추출, 개수 계산, 값 필터링). 키는 message_parameters의 매개변수 이름과 일치해야 합니다. 변환이 필요 없는 매개변수는 비워 두거나 생략하세요..

fire_and_forget

bool

실행 모드: 비동기 백그라운드 전송의 경우 True(워크플로는 즉시 계속되며, error_status는 항상 False이고, 실행이 더 빠름), 동기 전송의 경우 False(Twilio API 호출 완료를 기다리고, 디버깅을 위해 실제 오류 상태를 반환). 개발 및 디버깅 중에는 Twilio API 오류를 잡기 위해 False로 설정하세요. SMS 전송 시점이 중요하지 않은 프로덕션에서는 더 빠른 워크플로 실행을 위해 True로 설정하세요..

disable_sink

bool

런타임에 SMS 알림 전송을 비활성화하는 플래그입니다. True이면 블록은 SMS 전송을 건너뛰고 비활성화 메시지를 반환합니다. 워크플로 입력을 통한 조건부 알림 제어에 유용합니다(예: 호출자가 테스트용으로 알림을 비활성화하도록 허용, 설정에 따라 활성화/비활성화). 런타임 제어를 위해 워크플로 입력으로 설정합니다..

cooldown_seconds

정수

연속된 SMS 알림 사이의 최소 초 수로 SMS 스팸을 방지합니다. 기본값은 5초입니다. 0으로 설정하면 쿨다운이 비활성화됩니다(제한 없음). 0에서 900(15분) 사이여야 합니다. 쿨다운 기간 동안 블록은 throttling_status=True를 반환하고 전송을 건너뜁니다. 쿨다운은 cooldown_session_key를 사용하여 단계별로 추적되며, 캐시 기반 저장소(15분 만료)를 사용합니다. 워크플로의 각 Twilio SMS Notification 단계는 올바른 단계별 추적을 위해 고유한 cooldown_session_key를 가져야 합니다..

cooldown_session_key

str

이 Twilio SMS Notification 단계의 쿨다운 추적 세션을 위한 고유 식별자입니다. 워크플로의 각 Twilio SMS Notification 단계마다 고유해야 하며, 올바른 단계별 쿨다운 분리를 가능하게 합니다. Twilio 자격 증명 해시와 함께 사용되어 마지막 알림 타임스탬프를 추적하기 위한 캐시 키를 생성합니다. 분산 또는 다중 인스턴스 환경에서는 이를 통해 단계별 쿨다운이 올바르게 작동합니다. 일반적으로 자동 생성되거나 워크플로 입력으로 제공됩니다..

length_limit

정수

잘라내기 전 SMS 메시지에서 허용되는 최대 문자 수입니다. 기본값은 160자(표준 단일 파트 SMS 길이)입니다. 이 제한을 초과하는 메시지는 자동으로 잘리며, 마지막 문자는 잘라내기 표시('[...]')로 대체됩니다. 0보다 커야 합니다. 참고: SMS 표준은 단일 파트 메시지의 경우 160자, 멀티파트 메시지의 경우 세그먼트당 153자를 지원합니다. 필요에 맞게 조정하되, 더 긴 메시지는 Twilio에서 추가 비용이 발생할 수 있습니다..

참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.

런타임 호환성

인터넷 필요 - 에어갭 / 오프라인 배포 : 이 블록은 완전히 오프라인 / 에어갭된 배포에서는 접근할 수 없는 서비스에 의존합니다.

소프트 - 런타임 호스팅 서버리스, 전용 배포; 실행 원격 : 쿨다운/속도 제한 타이머는 프로세스 메모리에 저장됩니다. 상태 비저장 또는 다중 복제본 HTTP 런타임에서 원격 단계 실행을 사용하면 각 요청이 새 작업자를 받으므로 쿨다운이 속도를 제한하지 않습니다. 쿨다운은 지속적인 WebRTC 세션에서 로컬 단계 실행을 사용할 때만 문서화된 대로 작동합니다.

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 Twilio SMS 알림 버전 v1 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • twilio_account_sid (Union[secret, string]): Twilio API 인증에 사용되는 Twilio Account SID입니다. 다음 위치에서 찾을 수 있습니다 Twilio 콘솔 계정 정보 아래에 있습니다. 이 필드는 보안을 위해 비공개로 표시됩니다. workflow 정의에 저장하지 말고 SECRET_KIND 선택자를 사용하여 워크플로 입력으로 제공하는 것이 좋습니다. twilio_auth_token과 함께 사용하여 SMS 메시지 전송을 위한 Twilio API 요청을 인증합니다..

    • twilio_auth_token (Union[secret, string]): Twilio API 인증에 사용되는 Twilio Auth Token입니다. 다음 위치에서 찾을 수 있습니다 Twilio 콘솔 계정 정보 아래에 있습니다('show'를 클릭하여 표시). 이 필드는 보안을 위해 비공개로 표시됩니다. workflow 정의에 저장하지 말고 SECRET_KIND 선택자를 사용하여 워크플로 입력으로 제공하는 것이 좋습니다. twilio_account_sid와 함께 사용하여 SMS 메시지 전송을 위한 Twilio API 요청을 인증합니다..

    • sender_number (string): SMS 메시지를 발신할 Twilio 전화번호입니다. E.164 형식(예: '+1234567890')이어야 하며, Twilio에서 구매한 번호이거나 Twilio 계정에 등록된 인증된 번호여야 합니다. 이 번호는 수신자가 받는 SMS 메시지에서 발신자로 표시됩니다. 번호는 Twilio 콘솔에서 구매하거나 테스트용으로 체험 번호를 사용할 수 있습니다..

    • receiver_number (string): SMS 메시지를 수신할 대상 전화번호입니다. E.164 형식(예: '+1234567890')이어야 합니다. Twilio 체험 계정의 경우 수신 번호는 Twilio 계정에서 인증되어야 합니다. 유료 계정의 경우 유효한 모든 전화번호로 보낼 수 있습니다. 이 번호가 알림을 받는 모바일 번호입니다..

    • message_parameters (*): 메시지 플레이스홀더에 사용되는 매개변수 이름을 워크플로 데이터 소스에 매핑하는 사전입니다. 키는 메시지에서 다음과 같이 참조되는 매개변수 이름입니다 {{ $parameters.key }}, 값은 워크플로 단계 출력 또는 직접 값에 대한 선택기입니다. 이러한 값은 런타임에 메시지 플레이스홀더로 대체됩니다. 필요에 따라 message_parameters_operations를 사용해 대체 전에 매개변수 값을 변환할 수 있습니다..

    • fire_and_forget (boolean): 실행 모드: 비동기 백그라운드 전송의 경우 True(워크플로는 즉시 계속되며, error_status는 항상 False이고, 실행이 더 빠름), 동기 전송의 경우 False(Twilio API 호출 완료를 기다리고, 디버깅을 위해 실제 오류 상태를 반환). 개발 및 디버깅 중에는 Twilio API 오류를 잡기 위해 False로 설정하세요. SMS 전송 시점이 중요하지 않은 프로덕션에서는 더 빠른 워크플로 실행을 위해 True로 설정하세요..

    • disable_sink (boolean): 런타임에 SMS 알림 전송을 비활성화하는 플래그입니다. True이면 블록은 SMS 전송을 건너뛰고 비활성화 메시지를 반환합니다. 워크플로 입력을 통한 조건부 알림 제어에 유용합니다(예: 호출자가 테스트용으로 알림을 비활성화하도록 허용, 설정에 따라 활성화/비활성화). 런타임 제어를 위해 워크플로 입력으로 설정합니다..

    • cooldown_seconds (정수): 연속된 SMS 알림 사이의 최소 초 수로 SMS 스팸을 방지합니다. 기본값은 5초입니다. 0으로 설정하면 쿨다운이 비활성화됩니다(제한 없음). 0에서 900(15분) 사이여야 합니다. 쿨다운 기간 동안 블록은 throttling_status=True를 반환하고 전송을 건너뜁니다. 쿨다운은 cooldown_session_key를 사용하여 단계별로 추적되며, 캐시 기반 저장소(15분 만료)를 사용합니다. 워크플로의 각 Twilio SMS Notification 단계는 올바른 단계별 추적을 위해 고유한 cooldown_session_key를 가져야 합니다..

    • length_limit (정수): 잘라내기 전 SMS 메시지에서 허용되는 최대 문자 수입니다. 기본값은 160자(표준 단일 파트 SMS 길이)입니다. 이 제한을 초과하는 메시지는 자동으로 잘리며, 마지막 문자는 잘라내기 표시('[...]')로 대체됩니다. 0보다 커야 합니다. 참고: SMS 표준은 단일 파트 메시지의 경우 160자, 멀티파트 메시지의 경우 세그먼트당 153자를 지원합니다. 필요에 맞게 조정하되, 더 긴 메시지는 Twilio에서 추가 비용이 발생할 수 있습니다..

  • 출력

    • error_status (boolean): 불리언 플래그.

    • throttling_status (boolean): 불리언 플래그.

    • message (string): 문자열 값.

예시 JSON 정의

마지막 업데이트

도움이 되었나요?