# Send Events

## इवेंट्स भेजें

आप Vision Events को Workflow block, REST API, या edge device backup का उपयोग करके भेज सकते हैं।

* [Workflow Block](#workflow-block) - Workflows के उपयोगकर्ताओं को शायद official Roboflow block का उपयोग करना सबसे आसान लगेगा
* [REST API](#rest-api) - जो उपयोगकर्ता Workflows के बाहर models deploy करना चुनते हैं, वे हमारी REST API का उपयोग कर सकते हैं
* [Edge Device Backup](#edge-device-backup) - Roboflow Edge devices deploy करने वाले उपयोगकर्ताओं को device पर local event store से automated backup configure करना सबसे सुविधाजनक लगेगा

### Workflow Block

अधिकांश उपयोगकर्ताओं के लिए सुझाया गया तरीका। जोड़ें **Vision Event** block को किसी भी Roboflow Workflow में, ताकि बिना code की आवश्यकता के inference results से automatically events बनाए जा सकें।

#### सेटअप

{% stepper %}
{% step %}
**Workflow Editor खोलें**

पर जाएँ **Workflows** अपने workspace में और उस workflow को खोलें जिसमें आप events जोड़ना चाहते हैं।
{% endstep %}

{% step %}
**Vision Event Block जोड़ें**

block catalog में "Vision Event" खोजें और इसे अपने workflow में जोड़ें।
{% endstep %}

{% step %}
**Inputs कनेक्ट करें**

image input और model prediction outputs को Vision Event block से कनेक्ट करें।
{% endstep %}

{% step %}
**Use Case कॉन्फ़िगर करें**

Use Case का नाम सेट करें (`useCaseId`। आप upstream blocks से custom metadata को भी map कर सकते हैं।
{% endstep %}

{% step %}
**Workflow Deploy करें**

अपने workflow को deploy या update करें। जब भी workflow run होता है, events automatically बनाए जाते हैं।
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Workflow block image upload और event creation को एक ही step में handle करता है।
{% endhint %}

### REST API

जो custom integrations या pipelines Workflows का उपयोग नहीं करतीं, उनके लिए आप events सीधे REST API के माध्यम से भेज सकते हैं। complete request और response schemas के लिए, देखें [Vision Events API Reference](https://docs.roboflow.com/developer/rest-api/vision-events).

#### Authentication

सभी write endpoints के लिए एक API key आवश्यक है जिसमें `visionEvents.write` या `device.update` scope हो। API key को Bearer token के रूप में पास करें:

```
Authorization: Bearer YOUR_API_KEY
```

#### End-to-End Example: Upload Image + Create Event

{% hint style="warning" %}
events भेजने से पहले आपको एक Use Case बनाना होगा। ऐसे Events जो `useCaseId` को संदर्भित करते हैं जो मौजूद नहीं है, अस्वीकार कर दिए जाएंगे।
{% endhint %}

API के माध्यम से events भेजते समय, पहले आप image upload करते हैं, फिर uploaded image को reference करते हुए event बनाते हैं।

**Step 1: image upload करें**

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

**Response:**

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

**Step 2: uploaded image को reference करते हुए event बनाएं**

```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"
    }
  }'
```

**Response:**

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

#### Batch Create Events

batch endpoint का उपयोग करके एक ही request में अधिकतम 100 events भेजें:

```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 events।
{% endhint %}

### Edge Device Backup

उन enterprise deployments के लिए जहाँ connectivity बीच-बीच में बाधित हो सकती है, edge device events को locally store करता है और connectivity बहाल होने पर उन्हें Roboflow के साथ sync करता है।

{% hint style="info" %}
Edge Device Backup के लिए Deployment Manager आवश्यक है। सेटअप निर्देशों के लिए Deployment Manager documentation देखें।
{% endhint %}

Vision Events backup सक्षम करने के लिए:

1. खोलें **Deployment Manager** अपने workspace में
2. कॉन्फ़िगर करने के लिए device चुनें
3. सक्षम करें **Vision Events Backup** device की Event Store configuration में
4. Events device पर local event store में लिखे जाते हैं
5. जब device फिर से connect होता है, तो events automatically Roboflow से sync हो जाते हैं

Sync पूरा होने के बाद events Vision Events dashboard में दिखाई देते हैं।

<figure><img src="https://2698615118-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FxsgkG53PwvUtPzZIi1ez%2Fimage.png?alt=media&#x26;token=58085ee0-285e-4a76-8a5a-1fda3efd59a3" alt="" width="375"><figcaption></figcaption></figure>
