प्रीसेट एपीआई
एक पुश प्रीसेट एक पुन: प्रयोज्य पुश नोटिफिकेशन टेम्पलेट है — वही ऑब्जेक्ट जो आप कंट्रोल पैनल के पुश एडिटर में बनाते हैं। यह एपीआई केवल पुश प्रीसेट का प्रबंधन करता है; SMS, WhatsApp, Kakao, LINE, और Viber प्रीसेट में से प्रत्येक की अपनी समर्पित प्रीसेट सेवा है, जो यहां शामिल नहीं है।
एक प्रीसेट के code का उपयोग इसे Notify (पेलोड preset) या Customer Journey Send push point के माध्यम से भेजने के लिए करें।
बेस यूआरएल
Anchor link tohttps://rpc-api.svc-nue.pushwoosh.comसभी एंडपॉइंट्स HTTPS पर परोसे जाते हैं। अनुरोध और प्रतिक्रियाएं application/json का उपयोग करती हैं जब तक कि अन्यथा उल्लेख न किया गया हो।
प्रमाणीकरण
Anchor link toप्रत्येक अनुरोध में आपके Server API token के साथ एक Authorization हेडर शामिल होना चाहिए:
Authorization: Api YOUR_API_TOKENपरंपराएं
Anchor link to- फील्ड नेमिंग: रिक्वेस्ट बॉडी और क्वेरी/पाथ पैरामीटर्स
lowerCamelCase(उदाहरण के लिए,sendType,localizedProperties,searchByName) स्वीकार करते हैं — सर्वर किसी भी केसिंग को अनमार्शल करता है। प्रतिक्रियाएं हमेशा प्रोटो फील्ड नामों का उपयोग करकेsnake_case(localized_properties,platform_properties,per_page, आदि) में मार्शल की जाती हैं। नीचे दिए गए प्रतिक्रिया उदाहरण और प्रीसेट ऑब्जेक्ट रेफरेंस उस केसिंग का उपयोग करते हैं। code: प्रत्येक प्रीसेट प्रतिक्रिया अपना स्वयं का कोड ले जाती है, जोCreateपर उत्पन्न होता है। इस कोड कोGet,Update,UpdatePartial,Delete,Clone, और ऊपर दिए गए मैसेजिंग/जर्नी एपीआई को पास करें।- प्लेटफॉर्म कीज़:
platformsऔरopen_actionsमैप्स को न्यूमेरिक डिवाइस टाइप कोड (1iOS के लिए,3Android के लिए, आदि) द्वारा की किया जाता है।platform_propertiesको प्लेटफॉर्म के एनम नाम (IOS,ANDROID,HUAWEI_ANDROID,OSX— केवल चार प्लेटफॉर्म जिन्हें यह कवर करता है) द्वारा की किया जाता है। - अनपॉप्युलेटेड फील्ड्स:
Get,Create, औरCloneप्रतिक्रियाओं में प्रीसेट ऑब्जेक्ट के प्रत्येक फील्ड शामिल होते हैं, भले ही वे खाली या शून्य-मूल्य वाले हों।Listएक कम फील्ड सेट लौटाता है — नीचे सूची देखें।UpdateऔरUpdatePartialकोई प्रीसेट फील्ड नहीं लौटाते हैं — उनके अनुभागों में सावधानी देखें।
त्रुटि प्रतिक्रियाएं
Anchor link to| HTTP स्थिति | अर्थ |
|---|---|
400 Bad Request | अमान्य तर्क — एक आवश्यक फ़ील्ड गुम या विकृत है, या एक पूर्व शर्त विफल हो गई है (उदाहरण के लिए, name के बिना क्लोनिंग)। |
401 Unauthorized | Authorization हेडर गुम या अमान्य है। |
403 Forbidden | एप्लिकेशन या प्रीसेट कॉलर के खाते से संबंधित नहीं है। |
404 Not Found | प्रीसेट या एप्लिकेशन नहीं मिला। |
500 Internal Server Error | अप्रत्याशित सर्वर-साइड विफलता। |
एक चल रहे या रुके हुए जर्नी के Send push point द्वारा अभी भी उपयोग किए जा रहे प्रीसेट पर Delete भी 400 Bad Request (वायर पर एक FailedPrecondition) लौटाता है — 409 नहीं। पहले जर्नी से प्रीसेट को हटा दें।
एंडपॉइंट्स
Anchor link to| मेथड | पाथ | विवरण |
|---|---|---|
POST | /api/presets | एक नया पुश प्रीसेट बनाएं |
GET | /api/presets | एक एप्लिकेशन के पुश प्रीसेट की सूची बनाएं |
GET | /api/presets/{code} | एक एकल पुश प्रीसेट प्राप्त करें |
PUT | /api/presets/{code} | एक पुश प्रीसेट अपडेट करें (पूर्ण ओवरराइट) |
PUT | /api/presets/{code}:partial | एक पुश प्रीसेट अपडेट करें (आंशिक) |
POST | /api/presets/{code}:clone | एक पुश प्रीसेट क्लोन करें |
DELETE | /api/presets/{code} | एक पुश प्रीसेट हटाएं |
बनाएं (Create)
Anchor link toएक एप्लिकेशन में एक नया पुश प्रीसेट बनाता है और इसे इसके उत्पन्न कोड के साथ लौटाता है।
POST /api/presets
रिक्वेस्ट बॉडी
Anchor link to| पैरामीटर | टाइप | आवश्यक | विवरण |
|---|---|---|---|
application | string | हाँ | एप्लिकेशन कोड जिसमें प्रीसेट बनाना है। |
name | string | हाँ | प्रीसेट का नाम। |
sendType | string | नहीं | प्रीसेट का चैनल (उदाहरण के लिए push)। |
isV2 | boolean | नहीं | प्रीसेट के मूल ध्वज को पिन करता है। true (v2) पर डिफ़ॉल्ट करने के लिए छोड़ दें; केवल एक लिगेसी v1 प्रीसेट को पुन: प्रस्तुत करते समय false सेट करें। |
अन्य सभी फ़ील्ड — स्थानीयकृत सामग्री, प्लेटफ़ॉर्म, डीप लिंक, इनबॉक्स, श्रेणियां, आदि — Update के साथ साझा किए जाते हैं और नीचे प्रीसेट ऑब्जेक्ट संदर्भ में एक बार प्रलेखित किए गए हैं।
अनुरोध का उदाहरण
Anchor link to{ "application": "XXXXX-XXXXX", "name": "20% discount", "platforms": { "1": true, "3": true }, "localizedContent": { "default": "Get your 20% discount right now", "es": "Consigue tu 20% de descuento ahora mismo" }, "localizedTitle": { "default": "Hi there" }, "openAction": { "link": { "url": "https://example.com" } }, "categories": ["promo"]}रिस्पांस
Anchor link to{ "preset": { ... } } लौटाता है, जो बनाया गया प्रीसेट ऑब्जेक्ट है।
सूची (List)
Anchor link toएक एप्लिकेशन के पुश प्रीसेट की सूची बनाता है — एक कम फ़ील्ड सेट, न कि पूरा ऑब्जेक्ट — पेजिंग, ऑर्डरिंग, और नाम या श्रेणी के अनुसार फ़िल्टरिंग के साथ।
GET /api/presets
क्वेरी पैरामीटर्स
Anchor link to| पैरामीटर | टाइप | आवश्यक | विवरण |
|---|---|---|---|
application | string | हाँ | प्रीसेट की सूची बनाने के लिए एप्लिकेशन कोड। |
orderBy | string | नहीं | NAME (डिफ़ॉल्ट), CREATED, या UPDATED। |
orderDirection | string | नहीं | ASC (डिफ़ॉल्ट) या DESC। |
page | integer | नहीं | शून्य-आधारित पेज इंडेक्स। |
perPage | integer | नहीं | पेज का आकार। छोड़े जाने या 0 होने पर 100 पर डिफ़ॉल्ट होता है। |
searchByName | string | नहीं | प्रीसेट नाम या कोड पर केस-असंवेदनशील सबस्ट्रिंग मैच (ILIKE %value%)। |
searchByCategory | array of strings | नहीं | कई श्रेणियों में से किसी एक द्वारा फ़िल्टर करने के लिए पैरामीटर को दोहराएं, जैसे ?searchByCategory=promo&searchByCategory=lifecycle। |
showHidden | boolean | नहीं | hidden के रूप में चिह्नित प्रीसेट शामिल करें। |
रिस्पांस
Anchor link toप्रत्येक आइटम में केवल ये होते हैं: name, code, platforms, localized_content (प्रति-लोकेल सादा पाठ — न कि localized_properties), localized_title, localized_subtitle, banner, icon, categories, journey_uuid, custom_data, is_v2, created, updated। प्रीसेट ऑब्जेक्ट के हर दूसरे फ़ील्ड — localized_properties, platform_properties, deeplink, richmedia, url, आदि — को छोड़ दिया जाता है, भले ही वे प्रीसेट पर सेट हों।
| फील्ड | टाइप | विवरण |
|---|---|---|
presets | array of objects | प्रीसेट का वर्तमान पेज, ऊपर वर्णित कम आकार में। |
page | integer | लौटाया गया पेज इंडेक्स। |
per_page | integer | इस प्रतिक्रिया के लिए उपयोग किया गया पेज आकार। |
total | integer | फ़िल्टर से मेल खाने वाले प्रीसेट की कुल संख्या, सभी पेजों पर। |
प्रतिक्रिया का उदाहरण
Anchor link to{ "presets": [ { "name": "20% discount", "code": "AAAAA-BBBBB", "platforms": { "1": true, "3": true }, "categories": ["promo"] } ], "page": 0, "per_page": 100, "total": 1}प्राप्त करें (Get)
Anchor link toएक एकल पुश प्रीसेट को उसके कोड द्वारा लौटाता है, जिसमें प्रीसेट ऑब्जेक्ट के प्रत्येक फ़ील्ड को पॉप्युलेट किया जाता है।
GET /api/presets/{code}
पाथ पैरामीटर्स
Anchor link to| पैरामीटर | टाइप | विवरण |
|---|---|---|
code | string | प्रीसेट का कोड। |
रिस्पांस
Anchor link to{ "preset": { ... } } लौटाता है, जो पूरा प्रीसेट ऑब्जेक्ट है।
अपडेट करें (Update)
Anchor link toएक मौजूदा पुश प्रीसेट को कोड द्वारा दिए गए फ़ील्ड के साथ ओवरराइट करता है।
PUT /api/presets/{code}
पाथ पैरामीटर्स
Anchor link to| पैरामीटर | टाइप | विवरण |
|---|---|---|
code | string | ओवरराइट करने के लिए प्रीसेट का कोड। |
रिक्वेस्ट बॉडी
Anchor link toCreate (माइनस application) के समान फ़ील्ड, साथ ही प्रीसेट ऑब्जेक्ट के बाकी फ़ील्ड। sendType स्वीकार किया जाता है लेकिन अनदेखा कर दिया जाता है — एक प्रीसेट का चैनल निर्माण के बाद नहीं बदला जा सकता है।
रिस्पांस
Anchor link toसफलता पर एक खाली ऑब्जेक्ट: {}।
आंशिक अपडेट (UpdatePartial)
Anchor link toएक मौजूदा पुश प्रीसेट के केवल दिए गए फ़ील्ड को कोड द्वारा अपडेट करता है, अनसेट फ़ील्ड को अपरिवर्तित छोड़ देता है।
PUT /api/presets/{code}:partial
पाथ पैरामीटर्स
Anchor link to| पैरामीटर | टाइप | विवरण |
|---|---|---|
code | string | पैच करने के लिए प्रीसेट का कोड। |
रिक्वेस्ट बॉडी
Anchor link toUpdate के समान फ़ील्ड, माइनस application। Update के विपरीत, यहां हर फ़ील्ड — जिसमें localizedProperties, platformProperties, categories, और Update की सावधानी में सूचीबद्ध सामग्री-गुण समूह के बाकी हिस्से शामिल हैं — छोड़े जाने पर अपरिवर्तित छोड़ दिया जाता है, और केवल तब छुआ जाता है जब आप इसे भेजते हैं (एक मैप/ऐरे फ़ील्ड जिसे आप भेजते हैं, वह अभी भी उस फ़ील्ड के लिए मौजूदा मान को पूरी तरह से बदल देता है, यह बस आपके द्वारा शामिल नहीं की गई किसी भी चीज़ को प्रभावित नहीं करता है)। sendType भी स्वीकार किया जाता है लेकिन अनदेखा कर दिया जाता है।
अनुरोध का उदाहरण
Anchor link to{ "sendRate": 500, "cappingCount": 3, "cappingDays": 7}रिस्पांस
Anchor link toयह भी एक खाली ऑब्जेक्ट है — ऊपर दी गई सावधानी देखें।
क्लोन (Clone)
Anchor link toएक मौजूदा पुश प्रीसेट को एक नए नाम के तहत उसी एप्लिकेशन में डुप्लिकेट करता है।
POST /api/presets/{code}:clone
रिक्वेस्ट बॉडी
Anchor link to| पैरामीटर | टाइप | आवश्यक | विवरण |
|---|---|---|---|
code | string | हाँ | डुप्लिकेट करने के लिए स्रोत प्रीसेट का कोड। |
name | string | हाँ | नए प्रीसेट के लिए नाम। |
अनुरोध का उदाहरण
Anchor link to{ "code": "AAAAA-BBBBB", "name": "20% discount (copy)" }रिस्पांस
Anchor link to{ "preset": { ... } } लौटाता है, जो नया प्रीसेट ऑब्जेक्ट है।
हटाएं (Delete)
Anchor link toएक पुश प्रीसेट को कोड द्वारा स्थायी रूप से हटाता है।
DELETE /api/presets/{code}
पाथ पैरामीटर्स
Anchor link to| पैरामीटर | टाइप | विवरण |
|---|---|---|
code | string | हटाने के लिए प्रीसेट का कोड। |
रिस्पांस
Anchor link toसफलता पर एक खाली ऑब्जेक्ट: {}।
ऑब्जेक्ट रेफरेंस
Anchor link toनीचे दिए गए फ़ील्ड नाम Get, Create, Update, और Clone द्वारा वास्तव में लौटाए जाने वाले नामों से मेल खाते हैं — snake_case प्रोटो फ़ील्ड नाम (देखें परंपराएं)। ऊपर दिए गए अनुरोध उदाहरणों में उपयोग किया गया lowerCamelCase फ़ॉर्म इनपुट पर उसी तरह काम करता है।
प्रीसेट ऑब्जेक्ट
Anchor link toपहचान
Anchor link to| फील्ड | टाइप | विवरण |
|---|---|---|
code | string | Create पर उत्पन्न। एपीआई में हर जगह इस प्रीसेट की पहचान करता है। |
name | string | प्रीसेट का नाम। |
send_type | string | प्रीसेट का चैनल (उदाहरण के लिए push)। |
is_v2 | boolean | v2 सामग्री मॉडल में बनाए गए या माइग्रेट किए गए प्रीसेट के लिए true। |
system | boolean | प्रीसेट को एक सिस्टम/आंतरिक प्रीसेट के रूप में चिह्नित करता है। |
hidden | boolean | प्रीसेट को List परिणामों से छुपाता है (इसे शामिल करने के लिए showHidden: true भेजें)। |
created | string (RFC 3339) | निर्माण टाइमस्टैम्प। |
updated | string (RFC 3339) | अंतिम अपडेट टाइमस्टैम्प। |
टारगेटिंग और कंटेंट
Anchor link to| फील्ड | टाइप | विवरण |
|---|---|---|
platforms | map<string, boolean> | प्रीसेट किन प्लेटफॉर्म को लक्षित करता है, डिवाइस प्रकार कोड द्वारा की किया गया (जैसे iOS के लिए "1")। |
localized_properties | map<string, object> | लोकेल → रिच प्रति-प्लेटफॉर्म सामग्री। Notify पेलोड पर LocalizedContent के समान आकार — प्रति प्लेटफॉर्म ब्लॉक (ios, android, आदि) एक प्रविष्टि। यह प्लेटफॉर्म-विशिष्ट पुश सामग्री सेट करने का प्राथमिक तरीका है। |
localized_title / localized_subtitle / localized_content | map<string, string> | लोकेल → सादा पाठ। शीर्षक, उपशीर्षक और बॉडी के लिए localized_properties का एक सरल विकल्प जब आपको प्रति-प्लेटफॉर्म ओवरराइड की आवश्यकता नहीं होती है। |
platform_properties | map<string, object> | लिगेसी प्रति-प्लेटफॉर्म ओवरराइड, प्लेटफॉर्म एनम नाम (IOS, ANDROID, HUAWEI_ANDROID, OSX) द्वारा की किया गया। नीचे PlatformProperties ऑब्जेक्ट देखें। |
open_action | OpenAction | जब उपयोगकर्ता अधिसूचना खोलता है तो ट्रिगर होने वाली कार्रवाई, हर प्लेटफॉर्म पर लागू होती है। open_actions के साथ परस्पर अनन्य — प्रतिक्रिया ठीक एक सेट करती है। |
open_actions | map<string, OpenAction> | open_action का प्रति-प्लेटफॉर्म ओवरराइड, डिवाइस प्रकार कोड द्वारा की किया गया। |
deeplink | string | डीप लिंक कोड। |
deeplink_params | map<string, string> | डीप लिंक को पास किए गए पैरामीटर। |
richmedia | string | अधिसूचना द्वारा खोला गया रिच मीडिया कोड। |
url | string | अधिसूचना द्वारा खोला गया यूआरएल, यदि डीप लिंक या रिच मीडिया का उपयोग नहीं कर रहे हैं। |
इनबॉक्स
Anchor link to| फील्ड | टाइप | विवरण |
|---|---|---|
inbox_image | string | संदेश इनबॉक्स प्रविष्टि में दिखाया गया छवि यूआरएल। |
inbox_icon | string | संदेश इनबॉक्स प्रविष्टि में दिखाया गया आइकन यूआरएल। |
inbox_days | integer | संदेश इनबॉक्स में प्रविष्टि कितने दिनों तक रहती है। |
inbox_date | string (RFC 3339) | संदेश इनबॉक्स प्रविष्टि के लिए स्पष्ट समाप्ति तिथि, inbox_days के विकल्प के रूप में। |
संगठन और मेटाडेटा
Anchor link to| फील्ड | टाइप | विवरण |
|---|---|---|
categories | array of strings | प्रीसेट जिन श्रेणी नामों से टैग किया गया है। |
campaign_code | string | अभियान कोड जिससे यह प्रीसेट संबंधित है। |
filter_code | string | सेगमेंट / फ़िल्टर कोड जिसे यह प्रीसेट डिफ़ॉल्ट रूप से लक्षित करता है। |
geo_zones | string | जियोज़ोन टारगेटिंग, यदि प्रीसेट जियो-ट्रिगर है। |
journey_uuid | string | Customer Journey का UUID जो इस प्रीसेट का मालिक है, यदि यह एक जर्नी के Send push point से बनाया गया था। |
custom_data | object | फ्री-फॉर्म JSON क्लाइंट SDK को u पैरामीटर के रूप में फॉरवर्ड किया गया। |
banner | string | बड़ी-तस्वीर / अटैचमेंट छवि यूआरएल। |
icon | string | कस्टम अधिसूचना आइकन यूआरएल। |
डिलीवरी सीमाएं
Anchor link to| फील्ड | टाइप | विवरण |
|---|---|---|
send_rate | integer | इस प्रीसेट का उपयोग करके भेजने के लिए थ्रॉटलिंग, संदेश/सेकंड में — Notify के SendRate का प्रीसेट-स्तरीय समकक्ष। |
capping_count / capping_days | integer | इस प्रीसेट के लिए प्रति-उपयोगकर्ता आवृत्ति सीमा — Notify के FrequencyCapping count / days का प्रीसेट-स्तरीय समकक्ष। |
वेबहुक
Anchor link to| फील्ड | टाइप | विवरण |
|---|---|---|
notification_sent_url | string | इस प्रीसेट का उपयोग करके एक अधिसूचना भेजे जाने पर अनुरोधित कॉलबैक यूआरएल। |
notification_delivered_url | string | इस प्रीसेट का उपयोग करके एक अधिसूचना वितरित होने पर अनुरोधित कॉलबैक यूआरएल। |
notification_click_url | string | इस प्रीसेट का उपयोग करके एक अधिसूचना पर क्लिक किए जाने पर अनुरोधित कॉलबैक यूआरएल। |
लिगेसी फील्ड्स
Anchor link toये v1 प्रीसेट मॉडल से आगे ले जाए गए हैं। इन्हें नए एकीकरणों के बजाय कंट्रोल पैनल संगतता के लिए पॉप्युलेट किया जाता है।
| फील्ड | टाइप | विवरण |
|---|---|---|
remote_page | string | लिगेसी रिमोट पेज रेफरेंस। |
wns_content | string | लिगेसी विंडोज टोस्ट टेम्पलेट JSON, जैसा कि v1 createPreset/getPreset विधियों द्वारा स्वीकार किया गया है। |
original_url | string | url का पूर्व-संक्षिप्तीकरण मान, जब url को एक संक्षिप्त लिंक द्वारा प्रतिस्थापित किया गया था। |
ios_silent / android_silent / huawei_android_silent | boolean | प्रति-प्लेटफॉर्म साइलेंट (केवल-डेटा) पुश फ्लैग। |
PlatformProperties ऑब्जेक्ट
Anchor link toप्रत्येक platform_properties प्रविष्टि (IOS, ANDROID, HUAWEI_ANDROID, OSX) में उपलब्ध फ़ील्ड:
| फील्ड | टाइप | विवरण |
|---|---|---|
badge | string | बैज काउंट ओवरराइड। |
sound | string | साउंड फ़ाइल का नाम। |
sound_off | boolean | अधिसूचना ध्वनि को म्यूट करें। |
priority | string | इन-ट्रे प्राथमिकता (केवल Android/Huawei)। |
delivery_priority | string | NORMAL या HIGH डिलीवरी प्राथमिकता (केवल Android/Huawei)। |
ios_interruption_level | string | passive, active, time-sensitive, या critical (केवल iOS)। |