> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Automations API अवलोकन

> एंगेजमेंट-ट्रिगर्ड Instagram ऑटोमेशन — जब कोई अंतिम उपयोगकर्ता टिप्पणी करता है, स्टोरी का जवाब देता है, DM पर प्रतिक्रिया देता है, या DM भेजता है तो एक DM, वेबहुक या ईमेल फ़ायर करें

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

<PlansAvailable plans={["business", "enterprise"]} maxPackRequired={false} />

<Note>
  **Beta.** Automations API बीटा में है और हम सक्रिय रूप से फीडबैक एकत्र कर रहे हैं। एंडपॉइंट, पेलोड और सीमाएँ हमारे विकसित होने के साथ बदल सकती हैं। कृपया सपोर्ट को फीडबैक और बग रिपोर्ट भेजें ताकि हम सही सुधारों को प्राथमिकता दे सकें।
</Note>

Automations एंडपॉइंट आपको ऐसे नियम परिभाषित करने देते हैं जो आने वाले Instagram एंगेजमेंट पर स्वचालित रूप से प्रतिक्रिया करते हैं। प्रत्येक ऑटोमेशन एक या अधिक **triggers** (वह घटना जो नियम को फ़ायर करती है) को एक या अधिक **actions** (जब यह फ़ायर होता है तो क्या होता है) से जोड़ता है। एक नियम कई ट्रिगर्स सुन सकता है और कई क्रियाएँ भेज सकता है — उसी एंगेजमेंट से आपकी एनालिटिक्स पाइपलाइन में एक वेबहुक फ़ायर करें और साथ ही एक DM भी भेजें।

इंजन पूरी तरह से Meta की नीति सीमा के भीतर चलता है (कोई फ़ॉलो-ट्रिगर्ड DM नहीं, अजनबियों को पहला संदेश नहीं, बल्क आउटबाउंड नहीं) और Ayrshare की प्रति-खाता दर सीमाएँ, प्रति-प्राप्तकर्ता डुप्लीकेशन हटाना और आइडेम्पोटेंट वेबहुक इनजेशन विरासत में मिलती हैं।

## यह कैसे काम करता है

<Steps>
  <Step title="एक ऑटोमेशन बनाएँ">
    `POST /automations` उन ट्रिगर्स और क्रियाओं के साथ जो आप चाहते हैं। ऑटोमेशन तुरंत सक्रिय हो जाता है।
  </Step>

  <Step title="एक अंतिम उपयोगकर्ता एंगेज करता है">
    कोई आपकी पोस्ट पर टिप्पणी करता है, आपकी स्टोरी का जवाब देता है, DM भेजता है, या DM पर प्रतिक्रिया देता है। Meta वेबहुक को Ayrshare को डिलीवर करता है।
  </Step>

  <Step title="Ayrshare मिलाता है और भेजता है">
    इंजन घटना से मेल खाने वाले प्रत्येक नियम को खोजता है, प्रति-क्रिया डुप्लीकेशन हटाने और आपकी दैनिक DM सीमा की जाँच करता है, फिर प्रत्येक क्रिया चलाता है। Instagram के एंटी-स्पैम हेयुरिस्टिक्स के भीतर रहने के लिए DM भेजने पर 20–60 सेकंड का जिटर लागू किया जाता है।
  </Step>

  <Step title="निरीक्षण करें कि क्या फ़ायर हुआ">
    `GET /automations/:id/activity` ऑडिट लॉग लौटाता है — प्रत्येक डिस्पैच प्रयास, प्रति-क्रिया परिणाम और कोई भी त्रुटियाँ।
  </Step>
</Steps>

## Triggers

आप एक ऑटोमेशन में **50 ट्रिगर्स** तक जोड़ सकते हैं। प्रत्येक ट्रिगर `type` फ़ील्ड पर एक विवेकाधीन यूनियन है; टाइप-विशिष्ट फ़ील्ड्स एक ही स्तर पर होते हैं। v1 में सभी ट्रिगर्स केवल Instagram-only हैं।

| Type              | कब फ़ायर होता है                                              | कॉन्फ़िग                                                         |
| ----------------- | ------------------------------------------------------------- | ---------------------------------------------------------------- |
| `comment_keyword` | किसी विशिष्ट पोस्ट पर कीवर्ड से मेल खाने वाली टिप्पणी आती है  | `postId` (आवश्यक); `keywords` (आवश्यक, ≥1 प्रविष्टि)             |
| `story_reply`     | उपयोगकर्ता DM के माध्यम से किसी स्टोरी का जवाब देता है        | `storyId` (वैकल्पिक)                                             |
| `dm_reaction`     | उपयोगकर्ता आपके किसी DM पर इमोजी के साथ प्रतिक्रिया देता है   | `emoji` (वैकल्पिक — किसी भी इमोजी पर फ़ायर करने के लिए छोड़ दें) |
| `dm_keyword`      | उपयोगकर्ता एक DM भेजता है जिसका टेक्स्ट कीवर्ड से मेल खाता है | `keywords` (आवश्यक, ≥1 प्रविष्टि)                                |

कीवर्ड मिलान **case-insensitive** और पूर्ण-शब्द है। यदि किसी घटना में कॉन्फ़िगर किए गए कीवर्ड में से कोई एक शामिल है तो यह एक कीवर्ड-फ़िल्टर्ड ट्रिगर को संतुष्ट करता है। कनेक्टेड खाते की प्रत्येक स्टोरी पर फ़ायर करने के लिए स्टोरी ट्रिगर पर `storyId` छोड़ें।

## Actions

आप एक ऑटोमेशन में **50 क्रियाएँ** तक जोड़ सकते हैं। वे क्रमिक रूप से चलती हैं; प्रत्येक परिणाम गतिविधि रो पर दर्ज किया जाता है।

| Type           | प्रभाव                                                                                                                                     | कॉन्फ़िग                                                                                              |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- |
| `send_dm`      | नियम को ट्रिगर करने वाले उपयोगकर्ता को Instagram DM भेजता है, एक [टेम्प्लेट किए गए संदेश](#template-variables) का उपयोग करके।              | `message` (आवश्यक, टेम्प्लेट किया गया)                                                                |
| `fire_webhook` | आपके खाता-स्तर वेबहुक URL पर ऑटोमेशन संदर्भ को POST करता है ([`POST /hook/webhook`](/apis/webhooks/register) के माध्यम से कॉन्फ़िगर करें)। | *(कोई नहीं — पेलोड शेप निश्चित है; [नीचे](#fire_webhook-payload) देखें)*                              |
| `send_email`   | प्लेटफ़ॉर्म की मेल पाइपलाइन के माध्यम से एक ईमेल कतारबद्ध करता है।                                                                         | `to` (आवश्यक, ईमेल); `subject` (वैकल्पिक, टेम्प्लेट किया गया); `message` (आवश्यक, टेम्प्लेट किया गया) |

### प्रति-क्रिया डेडअप विंडो

प्रत्येक क्रिया — प्रकार की परवाह किए बिना — अतिरिक्त रूप से एक वैकल्पिक शीर्ष-स्तरीय `dedupWindowMinutes` फ़ील्ड स्वीकार करती है जो केवल उस क्रिया के लिए **डिफ़ॉल्ट 7-दिन** प्रति-प्राप्तकर्ता डेडअप विंडो को ओवरराइड करती है।

* उस क्रिया के लिए डेडअप को पूरी तरह से **अक्षम** करने के लिए `0` सेट करें (आमतौर पर `fire_webhook` / `send_email` के लिए जहाँ प्राप्तकर्ता प्रत्येक घटना की अपेक्षा करता है)।
* `525600` (एक वर्ष) पर सीमित।

```json Action with a 24h dedup override theme={"system"}
{
  "type": "send_dm",
  "message": "Thanks {{recipient_username}}!",
  "dedupWindowMinutes": 1440
}
```

### `fire_webhook` पेलोड

जब `fire_webhook` चलता है तो यह आपके खाता-स्तर वेबहुक URL पर एक JSON बॉडी POST करता है:

```json theme={"system"}
{
  "automationId":      "auto_9xKp2Lm4nQ",
  "triggerId":         "trg_a1b2c3",
  "trigger":           "comment_keyword",
  "platform":          "instagram",
  "recipientId":       "17841401234567890",
  "recipientUsername": "jane_doe",
  "keyword":           "LINK",
  "timestamp":         "2026-05-12T09:14:22.000Z"
}
```

जब ट्रिगर उन्हें पॉप्युलेट नहीं करता है तो `recipientUsername` और `keyword` `null` होते हैं (जैसे `dm_keyword` Meta के पेलोड पर यूज़रनेम नहीं ले जाता; `story_reply` में कीवर्ड नहीं होता)।

## टेम्प्लेट वेरिएबल्स

`send_dm.message`, `send_email.subject`, और `send_email.message` `{{placeholder}}` प्रतिस्थापन का समर्थन करते हैं। **अज्ञात प्लेसहोल्डर्स को क्रिएट/अपडेट समय पर अस्वीकार कर दिया जाता है** (एक `473` सत्यापन त्रुटि के रूप में) ताकि टाइपो कभी भी अक्षरशः `{{foo}}` को ग्राहक-सामने वाले संदेश में चुपचाप लीक न करे।

| Placeholder              | किस पर हल होता है                                                             |
| ------------------------ | ----------------------------------------------------------------------------- |
| `{{recipient_username}}` | एंगेज करने वाले उपयोगकर्ता का Instagram हैंडल (जब वेबहुक इसे ले जाता है)      |
| `{{recipient_id}}`       | एंगेज करने वाले उपयोगकर्ता की Instagram प्रतिभागी ID (IGSID)                  |
| `{{recipient_name}}`     | आरक्षित; भविष्य के संवर्धन स्रोत द्वारा पॉप्युलेट होने तक खाली में हल होता है |
| `{{sender_username}}`    | आपका लिंक किया गया Instagram यूज़रनेम                                         |
| `{{sender_name}}`        | आपका लिंक किया गया Instagram डिस्प्ले नाम                                     |
| `{{comment_text}}`       | ट्रिगर को फ़ायर करने वाली टिप्पणी / DM / स्टोरी उत्तर का टेक्स्ट              |
| `{{comment_id}}`         | फ़ायर होने वाली टिप्पणी / संदेश की प्लेटफ़ॉर्म आईडी                           |
| `{{comment_sent_at}}`    | घटना का ISO 8601 टाइमस्टैम्प (जब उपलब्ध हो)                                   |
| `{{matched_keyword}}`    | मेल खाने वाला कीवर्ड (या `dm_reaction` के लिए इमोजी स्ट्रिंग)                 |
| `{{platform}}`           | प्लेटफ़ॉर्म पहचानकर्ता (जैसे `instagram`)                                     |
| `{{trigger_type}}`       | ट्रिगर प्रकार (जैसे `comment_keyword`)                                        |

<Note>
  **कोई `sender_email` / `recipient_email` नहीं।** ये जानबूझकर सामने नहीं लाए गए हैं — किसी अजनबी को DM में आपकी बिलिंग ईमेल का कोई वैध स्थान नहीं है, और Meta किसी भी IG वेबहुक पर प्राप्तकर्ता की ईमेल प्रदान नहीं करता है। प्लेसहोल्डर्स से बचना आकस्मिक प्रकटीकरण को रोकता है।
</Note>

उदाहरण टेम्प्लेट:

```
Hey {{recipient_username}}, thanks for the comment "{{comment_text}}" — here is the link you wanted: https://example.com
```

## दर सीमाएँ और कैप्स

| Plan       | सक्रिय ऑटोमेशन (प्रति प्रोफ़ाइल) | दैनिक DM कैप (प्रति खाता) |
| ---------- | -------------------------------- | ------------------------- |
| Business   | 10                               | 1,000                     |
| Enterprise | 50                               | 5,000                     |

सक्रिय-ऑटोमेशन कैप को **प्रति [User Profile](/apis/profiles/overview)** गिना जाता है, प्रति मूल खाता नहीं। आपके खाते के अंतर्गत प्रत्येक प्रोफ़ाइल को अपना खुद का Business 10 / Enterprise 50 मिलता है, इसलिए कई प्रोफाइल वाला खाता प्रत्येक पर उतने ही ऑटोमेशन चला सकता है। यह सक्रिय ऑटोमेशन गिनता है और `POST` (क्रिएट) और `PUT` पुन:-सक्रियण (`active: false → true`) दोनों पर लागू किया जाता है, प्रत्येक त्रुटि कोड `470` उत्पन्न करता है। प्रति-प्रोफ़ाइल उच्च सीमा चाहिए? इसे अपने खाते के लिए बढ़ाने के लिए [सपोर्ट से संपर्क करें](mailto:support@ayrshare.com)।

**दैनिक DM कैप** प्रति मूल Ayrshare खाते पर लागू होता है, आपके सभी प्रोफाइल में साझा किया जाता है, प्रति-प्रोफ़ाइल सब-कैप के साथ ताकि एक व्यस्त प्रोफ़ाइल पूरे खाते के कोटा को नष्ट न कर सके। जब DM कैप हिट हो जाता है, तो गतिविधि रो स्थिति `rate_limited` दर्ज करती है और कोई DM नहीं भेजा जाता।

एक ऑटोमेशन पर संरचनात्मक कैप्स: **1–50 ट्रिगर्स**, **1–50 क्रियाएँ**।

Instagram स्वयं प्रति खाता लगभग 200/घंटा पर DM को सीमित करता है। इसके नीचे सुरक्षित रूप से रहने के लिए इंजन 20–60 सेकंड जिटर के साथ डिस्पैच को गति देता है।

## गतिविधि स्थितियाँ

`GET /automations/:id/activity` में एक रो एक शीर्ष-स्तरीय `status` और `actionResults[]` के अंदर एक प्रति-क्रिया `status` ले जाता है:

| Status         | अर्थ                                                                              |
| -------------- | --------------------------------------------------------------------------------- |
| `pending`      | अभी लिखा गया; कार्यकर्ता ने अभी तक इसे नहीं उठाया                                 |
| `in_flight`    | कार्यकर्ता वर्तमान में डिस्पैच कर रहा है                                          |
| `sent`         | प्रत्येक क्रिया सफल हुई                                                           |
| `failed`       | कम से कम एक क्रिया विफल हुई (और किसी ने भी प्रमाणीकरण त्रुटि नहीं मारी)           |
| `auth_error`   | Instagram एक्सेस टोकन अमान्य था; DM का पुनः प्रयास नहीं किया गया                  |
| `rate_limited` | दैनिक DM कैप (टियर या प्रति-प्रोफ़ाइल) हिट हुआ; कोई DM नहीं भेजा गया              |
| `deduplicated` | यह क्रिया पहले से ही अपनी डेडअप विंडो के भीतर इस प्राप्तकर्ता को फ़ायर हो चुकी है |
| `skipped`      | ऑटोमेशन फैन-आउट और डिस्पैच के बीच निष्क्रिय हो गया या हटा दिया गया                |

`pending` और `in_flight` क्षणिक हैं; बाकी सब कुछ अंतिम है।

## त्रुटि कोड

API दो आकार की त्रुटियाँ लौटाता है:

* **व्यवसाय-नियम त्रुटियाँ** एक नंबरित ऑटोमेशन `code` ले जाती हैं (जैसे `{ "action": "automation", "code": 469, ... }`)।
* **सत्यापन त्रुटियाँ** — कोई भी विकृत अनुरोध बॉडी (गुम या अमान्य फ़ील्ड, अज्ञात टेम्प्लेट वेरिएबल, अनजान कुंजियाँ) — एक `details` ऑब्जेक्ट के साथ एकल **`473`** प्रतिक्रिया के रूप में लौटाई जाती हैं जो आपत्तिजनक फ़ील्ड सूचीबद्ध करती हैं। `details` सत्यापनकर्ता का आउटपुट है (`formErrors` प्लस `fieldErrors`). प्रति-शर्त कोड पर नहीं, `details` पर ब्रांच करें। `fieldErrors` में, कुंजियाँ शीर्ष-स्तरीय अनुरोध फ़ील्ड हैं (`triggers`, `actions`): किसी विशिष्ट प्रविष्टि के भीतर एक समस्या, जैसे कि एक ट्रिगर जिसमें अपने `keywords` गायब हैं, उस फ़ील्ड (जैसे `triggers`) के तहत रिपोर्ट की जाती है, जबकि `formErrors` अनजान कुंजियों जैसे ऑब्जेक्ट-स्तरीय मुद्दे रखता है।

| Code | HTTP | अर्थ                                                                             |
| ---- | ---- | -------------------------------------------------------------------------------- |
| 468  | 403  | Business या Enterprise योजना आवश्यक                                              |
| 469  | 404  | ऑटोमेशन नहीं मिला (जब कॉलर इसका मालिक नहीं है तब भी लौटाया जाता है)              |
| 470  | 429  | आपकी योजना टियर के लिए सक्रिय ऑटोमेशन कैप तक पहुँच गया                           |
| 471  | 400  | इस प्रोफ़ाइल के लिए अनुरोधित प्लेटफ़ॉर्म पर कोई सोशल खाता लिंक नहीं है           |
| 472  | 403  | आपके खाते पर सुविधा अभी उपलब्ध नहीं है — प्रारंभिक पहुँच के लिए हमसे संपर्क करें |
| 473  | 400  | सत्यापन विफल हुआ (विकृत अनुरोध बॉडी) — `details` का निरीक्षण करें                |

## Meta क्या अनुमति नहीं देता

कुछ सामान्य रूप से अनुरोधित क्षमताएँ समर्थित नहीं हैं क्योंकि Meta उन्हें सार्वजनिक Instagram API पर अनुमति नहीं देता है:

* **नए फ़ॉलोअर्स पर ऑटो-DM.** Instagram एक फ़ॉलो वेबहुक प्रकाशित नहीं करता है।
* **अजनबियों को पहला-संदेश DM.** Meta को व्यवसाय खाते द्वारा उन्हें संदेश भेजने से पहले प्राप्तकर्ता को संपर्क आरंभ करने की आवश्यकता होती है (टिप्पणी, उत्तर, DM, प्रतिक्रिया) — जो बिल्कुल वही है जो यहाँ प्रत्येक समर्थित ट्रिगर प्रतिनिधित्व करता है।
* **बल्क आउटबाउंड कैंपेन.** प्रति घंटा DM कैप्स और एंटी-दुरुपयोग हेयुरिस्टिक्स प्लेटफ़ॉर्म स्तर पर लागू होते हैं।

## मल्टी-प्रोफ़ाइल उपयोग

एंडपॉइंट `profileKey` हेडर का सम्मान करते हैं। एक चाइल्ड प्रोफ़ाइल की कुंजी पास करें और ऑटोमेशन उस प्रोफ़ाइल के तहत बनाया/प्रबंधित किया जाता है। दर सीमाएँ प्रति-प्रोफ़ाइल सब-कैप के माध्यम से प्रोफाइल में विभाजित होती हैं ताकि एक चैटर प्रोफ़ाइल मूल खाते के कोटा को नष्ट न करे।

## अक्सर पूछे जाने वाले प्रश्न

<AccordionGroup>
  <Accordion title="क्या मैं नए फ़ॉलोअर पर ट्रिगर कर सकता हूँ?">
    नहीं। Instagram एक फ़ॉलो वेबहुक प्रकाशित नहीं करता है, और Meta तीसरे-पक्ष के ऐप्स को उस उपयोगकर्ता को DM भेजने की अनुमति नहीं देता है जिसने बातचीत शुरू नहीं की है। प्रत्येक समर्थित ट्रिगर (`comment_keyword`, `story_reply`, `dm_reaction`, `dm_keyword`) "उपयोगकर्ता ने आपसे पहले संपर्क किया" आवश्यकता को संतुष्ट करता है।
  </Accordion>

  <Accordion title="जब ऑटोमेशन फ़ायर होता है और मेरा एक्सेस टोकन अमान्य होता है तो क्या होता है?">
    गतिविधि रो स्थिति `auth_error` दर्ज करती है और DM का पुनः प्रयास नहीं किया जाता है। खाते को फिर से लिंक करें, फिर अगला मिलान करने वाला एंगेजमेंट सामान्य रूप से फ़ायर होगा।
  </Accordion>

  <Accordion title="DM भेजे जाने से पहले देरी क्यों है?">
    Instagram के एंटी-स्पैम सिस्टम को ऑर्गैनिक लगने के लिए प्रत्येक `send_dm` डिस्पैच एंगेजमेंट के 20–60 सेकंड बाद शेड्यूल किया जाता है। `fire_webhook` और `send_email` क्रियाओं में जिटर नहीं होता है। गतिविधि रो का `created` टाइमस्टैम्प तब होता है जब ट्रिगर मिला; `completedAt` तब होता है जब डिस्पैच समाप्त हुआ।
  </Accordion>

  <Accordion title="क्या गतिविधि रो हमेशा के लिए रखे जाते हैं?">
    ट्रेस और एनालिटिक्स के लिए गतिविधि रो अनिश्चितकालीन रूप से बनाए रखे जाते हैं। प्रदर्शन के लिए `GET /automations/:id/activity` एंडपॉइंट पिछले 30 दिनों के रो लौटाता है। (डेडअप गार्ड अपनी खुद की प्रति-क्रिया विंडो का उपयोग करता है — डिफ़ॉल्ट 7 दिन — जो गतिविधि लुकबैक से असंबंधित है।)
  </Accordion>

  <Accordion title="क्या ऑटोमेशन हटाने से इसकी गतिविधि इतिहास हट जाता है?">
    नहीं। हटाना एक सॉफ्ट-डिलीट है: मास्टर रो को `deleted` के रूप में चिह्नित किया जाता है, कोई नई डिस्पैच नहीं होती है, लेकिन ऐतिहासिक गतिविधि रो गतिविधि एंडपॉइंट के माध्यम से पठनीय रहती हैं।
  </Accordion>
</AccordionGroup>

## एंडपॉइंट

* [`POST /automations`](/apis/automations/create-automation) — एक नया ऑटोमेशन बनाएँ
* [`GET /automations`](/apis/automations/list-automations) — अपने ऑटोमेशन सूचीबद्ध करें
* [`GET /automations/:id`](/apis/automations/get-automation) — इसके ट्रिगर और क्रियाओं के साथ एक ऑटोमेशन प्राप्त करें
* [`PUT /automations/:id`](/apis/automations/update-automation) — आंशिक अपडेट; `active: false` के माध्यम से रोकें
* [`DELETE /automations/:id`](/apis/automations/delete-automation) — सॉफ्ट-डिलीट
* [`GET /automations/:id/activity`](/apis/automations/get-activity) — कर्सर-पेजिनेटेड डिस्पैच ऑडिट लॉग
