> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/roboflow/roboflow-ko/deploy/vision-events/send-events.md).

# 이벤트 보내기

## 이벤트 전송

Vision Events는 Workflow block, REST API 또는 Edge Device Backup을 사용하여 보낼 수 있습니다.

* [Workflow Block](#workflow-block) - Workflows 사용자는 공식 Roboflow block을 사용하는 것이 가장 쉬울 것입니다
* [REST API](#rest-api) - Workflows 외부에서 모델을 배포하려는 사용자는 REST API를 사용할 수 있습니다
* [Edge Device Backup](#edge-device-backup) - Roboflow Edge devices를 배포하는 사용자는 device의 로컬 이벤트 저장소에서 자동 백업을 구성하는 것이 가장 편리할 것입니다

### Workflow Block

대부분의 사용자에게 권장되는 방법입니다. 다음을 추가하세요. **Vision Event** 블록을 어떤 Roboflow Workflow에든 추가하면 코드 없이 추론 결과로부터 이벤트를 자동으로 생성할 수 있습니다.

{% hint style="info" %}
해당 [Roboflow Agent](broken://pages/a49e1c0c68822bd5a89b21f433391322f1b50a29) 이를 설정해 드릴 수 있습니다. 모델을 실행하는 Workflow를 만들도록 Agent에 요청하면, 자동으로 Vision Events block을 추가하고 적절한 대상에 연결합니다 [Use Case](/roboflow/roboflow-ko/deploy/vision-events/use-cases.md).
{% endhint %}

#### 설정

{% stepper %}
{% step %}
**Workflow Editor 열기**

이동하세요 **Workflows** workspace에서 이벤트를 추가하려는 workflow를 엽니다.
{% endstep %}

{% step %}
**Vision Event Block 추가**

block catalog에서 "Vision Event"를 검색한 다음 workflow에 추가합니다.
{% endstep %}

{% step %}
**입력 연결**

이미지 입력과 model prediction 출력을 Vision Event block에 연결합니다.
{% endstep %}

{% step %}
**Use Case 구성**

Use Case 이름을 설정하세요 (`useCaseId`). 또한 상위 블록의 커스텀 메타데이터를 매핑할 수도 있습니다.
{% endstep %}

{% step %}
**Workflow 배포**

workflow를 배포하거나 업데이트하세요. workflow가 실행될 때마다 이벤트가 자동으로 생성됩니다.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Workflow block은 이미지 업로드와 이벤트 생성을 한 단계에서 처리합니다.
{% endhint %}

### REST API

Workflows를 사용하지 않는 커스텀 통합 또는 파이프라인의 경우, REST API를 통해 이벤트를 직접 보낼 수 있습니다. 전체 요청 및 응답 스키마는 다음을 참조하세요: [Vision Events API Reference](https://docs.roboflow.com/developer/rest-api/vision-events).

#### 인증

모든 write endpoint는 다음 권한이 있는 API key를 필요로 합니다 `visionEvents.write` 또는 `device.update` scope가 필요합니다. API key를 Bearer token으로 전달하세요:

```
Authorization: Bearer YOUR_API_KEY
```

#### 엔드 투 엔드 예시: 이미지 업로드 + 이벤트 생성

{% hint style="warning" %}
이벤트를 보내기 전에 Use Case를 생성해야 합니다. 다음을 참조하는 이벤트는 `useCaseId` 존재하지 않는 것은 거부됩니다.
{% endhint %}

API를 통해 이벤트를 보낼 때는 먼저 이미지를 업로드한 다음, 업로드된 이미지를 참조하는 이벤트를 생성합니다.

**1단계: 이미지 업로드**

```bash
curl -X POST "https://api.roboflow.com/vision-events/upload" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@inspection_photo.jpg"
```

**응답:**

```json
{
  "success": true,
  "sourceId": "abc123def456",
  "url": "https://storage.googleapis.com/your-workspace/abc123def456/original.jpg"
}
```

**2단계: 업로드된 이미지를 참조하여 이벤트 생성**

```bash
curl -X POST "https://api.roboflow.com/vision-events" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "eventType": "quality_check",
    "useCaseId": "assembly-line-qa",
    "timestamp": "2026-03-30T14:30:00.000Z",
    "deviceId": "factory-cam-01",
    "streamId": "line-3",
    "images": [
      {
        "sourceId": "abc123def456",
        "objectDetections": [
          {
            "class": "defect",
            "x": 320,
            "y": 240,
            "width": 50,
            "height": 40,
            "confidence": 0.95
          }
        ]
      }
    ],
    "eventData": {
      "result": "fail"
    },
    "customMetadata": {
      "line_id": "line-3",
      "shift": "morning",
      "part_number": "PN-4421"
    }
  }'
```

**응답:**

```json
{
  "eventId": "evt-789ghi",
  "created": true
}
```

#### 이벤트 일괄 생성

batch endpoint를 사용하여 한 번의 요청으로 최대 100개의 이벤트를 보낼 수 있습니다:

```bash
curl -X POST "https://api.roboflow.com/vision-events/batch" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "events": [
      {
        "eventType": "quality_check",
        "useCaseId": "alksjdflaalsf32",
        "eventData": { "result": "pass" },
        "customMetadata": { "line_id": "line-1" }
      },
      {
        "eventType": "quality_check",
        "useCaseId": "alksjdflaalsf32",
        "eventData": { "result": "fail" },
        "customMetadata": { "line_id": "line-2" }
      }
    ]
  }'
```

{% hint style="info" %}
batch request당 최대 100개의 이벤트.
{% endhint %}

### Edge Device Backup

연결이 간헐적일 수 있는 enterprise deployment의 경우, edge device가 이벤트를 로컬에 저장하고 연결이 복원되면 Roboflow와 동기화합니다.

{% hint style="info" %}
Edge Device Backup에는 Deployment Manager가 필요합니다. 다음을 참조하세요: [Deployment Manager 문서](/roboflow/roboflow-ko/deploy/device-manager.md) 설정 지침은.
{% endhint %}

Vision Events 백업을 활성화하려면:

1. Open **Deployment Manager** workspace에서
2. 구성할 device를 선택하세요
3. 활성화 **Vision Events Backup** device의 Event Store configuration에서
4. 이벤트는 device의 local event store에 기록됩니다
5. device가 다시 연결되면 이벤트가 Roboflow와 자동으로 동기화됩니다

동기화가 완료되면 이벤트가 Vision Events dashboard에 표시됩니다.

<figure><img src="/files/3b21c38bf4cc6f087d3a86d9c48ad0b6ec560b60" alt="" width="375"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.roboflow.com/roboflow/roboflow-ko/deploy/vision-events/send-events.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
