प्रीसेट्स API
एक पुश प्रीसेट एक पुन: प्रयोज्य पुश नोटिफिकेशन टेम्पलेट है — वही ऑब्जेक्ट जो आप कंट्रोल पैनल के पुश एडिटर में बनाते हैं। यह API केवल पुश प्रीसेट का प्रबंधन करता है; SMS, WhatsApp, Kakao, LINE, और Viber प्रीसेट में से प्रत्येक की अपनी समर्पित प्रीसेट सेवा है, जो यहां शामिल नहीं है।
प्रीसेट के code का उपयोग इसे Notify (पेलोड preset) या कस्टमर जर्नी Send push point के माध्यम से भेजने के लिए करें।
बेस URL
Anchor link tohttps://rpc-api.svc-nue.pushwoosh.comसभी एंडपॉइंट HTTPS पर परोसे जाते हैं। अनुरोध और प्रतिक्रियाएं application/json का उपयोग करती हैं जब तक कि अन्यथा उल्लेख न किया गया हो।
प्रमाणीकरण
Anchor link toप्रत्येक अनुरोध में आपके सर्वर API टोकन के साथ एक 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और ऊपर दिए गए मैसेजिंग/जर्नी API को पास करें।- प्लेटफ़ॉर्म कीज़:
platformsऔरopen_actionsमैप्स को संख्यात्मक डिवाइस प्रकार कोड (1iOS के लिए,3Android के लिए, इत्यादि) द्वारा की किया जाता है।platform_propertiesको प्लेटफ़ॉर्म के एनम नाम से की किया जाता है (IOS,ANDROID,BAIDU_ANDROID,HUAWEI_ANDROID,OSX— केवल पांच प्लेटफ़ॉर्म जिन्हें यह कवर करता है)। - अनपॉप्युलेटेड फ़ील्ड्स:
Get,Create, औरCloneप्रतिक्रियाओं में प्रीसेट ऑब्जेक्ट के प्रत्येक फ़ील्ड शामिल होते हैं, भले ही वे खाली या शून्य-मूल्य वाले हों।Listएक कम फ़ील्ड सेट लौटाता है — नीचे सूची देखें।UpdateऔरUpdatePartialकोई प्रीसेट फ़ील्ड नहीं लौटाते हैं — उनके अनुभागों में सावधानी देखें।
त्रुटि प्रतिक्रियाएं
Anchor link to| HTTP स्थिति | अर्थ |
|---|---|
400 Bad Request | अमान्य तर्क — एक आवश्यक फ़ील्ड गुम है या विकृत है, या एक पूर्व शर्त विफल हो गई है (उदाहरण के लिए, नाम के बिना क्लोनिंग)। |
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} | एक पुश प्रीसेट हटाएं |
बनाएं
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": { ... } } लौटाता है, जो बनाया गया प्रीसेट ऑब्जेक्ट है।
सूची
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}प्राप्त करें
Anchor link toएक एकल पुश प्रीसेट को उसके कोड द्वारा लौटाता है, जिसमें प्रीसेट ऑब्जेक्ट के प्रत्येक फ़ील्ड को पॉप्युलेट किया जाता है।
GET /api/presets/{code}
पथ पैरामीटर
Anchor link to| पैरामीटर | प्रकार | विवरण |
|---|---|---|
code | string | प्रीसेट का कोड। |
प्रतिक्रिया
Anchor link to{ "preset": { ... } } लौटाता है, जो पूर्ण प्रीसेट ऑब्जेक्ट है।
अपडेट करें
Anchor link toआपूर्ति किए गए फ़ील्ड के साथ कोड द्वारा एक मौजूदा पुश प्रीसेट को ओवरराइट करता है।
PUT /api/presets/{code}
पथ पैरामीटर
Anchor link to| पैरामीटर | प्रकार | विवरण |
|---|---|---|
code | string | ओवरराइट करने के लिए प्रीसेट का कोड। |
अनुरोध निकाय
Anchor link toबनाएं के समान फ़ील्ड (application को छोड़कर), साथ ही प्रीसेट ऑब्जेक्ट के बाकी फ़ील्ड। sendType स्वीकार किया जाता है लेकिन अनदेखा कर दिया जाता है — एक प्रीसेट का चैनल निर्माण के बाद नहीं बदला जा सकता है।
प्रतिक्रिया
Anchor link toसफलता पर एक खाली ऑब्जेक्ट: {}।
आंशिक अपडेट
Anchor link toकोड द्वारा एक मौजूदा पुश प्रीसेट के केवल आपूर्ति किए गए फ़ील्ड को अपडेट करता है, अनसेट फ़ील्ड को अपरिवर्तित छोड़ देता है।
PUT /api/presets/{code}:partial
पथ पैरामीटर
Anchor link to| पैरामीटर | प्रकार | विवरण |
|---|---|---|
code | string | पैच करने के लिए प्रीसेट का कोड। |
अनुरोध निकाय
Anchor link toअपडेट के समान फ़ील्ड, application को छोड़कर। Update के विपरीत, यहां हर फ़ील्ड — जिसमें localizedProperties, platformProperties, categories, और अपडेट की सावधानी में सूचीबद्ध बाकी सामग्री-गुण समूह शामिल हैं — छोड़े जाने पर अपरिवर्तित रहता है, और केवल तब छुआ जाता है जब आप इसे भेजते हैं (एक मैप/ऐरे फ़ील्ड जिसे आप भेजते हैं, वह अभी भी उस फ़ील्ड के लिए मौजूदा मान को पूरी तरह से बदल देता है, यह बस उस चीज़ को प्रभावित नहीं करता है जिसे आपने शामिल नहीं किया है)। sendType को भी स्वीकार किया जाता है लेकिन अनदेखा कर दिया जाता है।
अनुरोध उदाहरण
Anchor link to{ "sendRate": 500, "cappingCount": 3, "cappingDays": 7}प्रतिक्रिया
Anchor link toयह भी एक खाली ऑब्जेक्ट है — ऊपर सावधानी देखें।
क्लोन
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": { ... } } लौटाता है, जो नया प्रीसेट ऑब्जेक्ट है।
हटाएं
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 पर उत्पन्न। API में हर जगह इस प्रीसेट की पहचान करता है। |
name | string | प्रीसेट का नाम। |
send_type | string | प्रीसेट का चैनल (उदाहरण के लिए push)। |
is_v2 | boolean | v2 सामग्री मॉडल में बनाए गए या माइग्रेट किए गए प्रीसेट के लिए true। |
system | boolean | प्रीसेट को एक सिस्टम/आंतरिक प्रीसेट के रूप में चिह्नित करता है। |
hidden | boolean | प्रीसेट को सूची परिणामों से छुपाता है (इसे शामिल करने के लिए 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, BAIDU_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 | अधिसूचना द्वारा खोला गया URL, यदि डीप लिंक या रिच मीडिया का उपयोग नहीं कर रहे हैं। |
इनबॉक्स
Anchor link to| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
inbox_image | string | संदेश इनबॉक्स प्रविष्टि में दिखाई गई छवि URL। |
inbox_icon | string | संदेश इनबॉक्स प्रविष्टि में दिखाया गया आइकन URL। |
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 | कस्टमर जर्नी का UUID जो इस प्रीसेट का मालिक है, यदि इसे जर्नी के Send push point से बनाया गया था। |
custom_data | object | क्लाइंट SDK को u पैरामीटर के रूप में अग्रेषित फ्री-फॉर्म JSON। |
banner | string | बड़ी-तस्वीर / अटैचमेंट छवि URL। |
icon | string | कस्टम अधिसूचना आइकन URL। |
वितरण सीमाएं
Anchor link to| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
send_rate | integer | इस प्रीसेट का उपयोग करके भेजने के लिए थ्रॉटलिंग, संदेश/सेकंड में — Notify के SendRate के प्रीसेट-स्तरीय समकक्ष। |
capping_count / capping_days | integer | इस प्रीसेट के लिए प्रति-उपयोगकर्ता आवृत्ति सीमा — Notify के FrequencyCapping count / days के प्रीसेट-स्तरीय समकक्ष। |
वेबहुक
Anchor link to| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
notification_sent_url | string | इस प्रीसेट का उपयोग करके एक अधिसूचना भेजे जाने पर अनुरोधित कॉलबैक URL। |
notification_delivered_url | string | इस प्रीसेट का उपयोग करके एक अधिसूचना वितरित होने पर अनुरोधित कॉलबैक URL। |
notification_click_url | string | इस प्रीसेट का उपयोग करके एक अधिसूचना पर क्लिक किए जाने पर अनुरोधित कॉलबैक URL। |
लीगेसी फ़ील्ड्स
Anchor link toये v1 प्रीसेट मॉडल से आगे बढ़ते हैं। इन्हें नए एकीकरणों के बजाय कंट्रोल पैनल संगतता के लिए पॉप्युलेट किया जाता है।
| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
remote_page | string | लीगेसी रिमोट पेज संदर्भ। |
wns_content | string | लीगेसी विंडोज टोस्ट टेम्पलेट JSON, जैसा कि v1 createPreset/getPreset विधियों द्वारा स्वीकार किया गया है। |
original_url | string | url का पूर्व-संक्षिप्तीकरण मान, जब url को एक संक्षिप्त लिंक द्वारा प्रतिस्थापित किया गया था। |
ios_silent / android_silent / baidu_android_silent / huawei_android_silent | boolean | प्रति-प्लेटफ़ॉर्म साइलेंट (केवल-डेटा) पुश फ़्लैग। |
PlatformProperties ऑब्जेक्ट
Anchor link toप्रत्येक platform_properties प्रविष्टि (IOS, ANDROID, BAIDU_ANDROID, HUAWEI_ANDROID, OSX) में उपलब्ध फ़ील्ड:
| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
badge | string | बैज गणना ओवरराइड। |
sound | string | ध्वनि फ़ाइल का नाम। |
sound_off | boolean | अधिसूचना ध्वनि को म्यूट करें। |
priority | string | इन-ट्रे प्राथमिकता (केवल Android/Baidu/Huawei)। |
delivery_priority | string | NORMAL या HIGH वितरण प्राथमिकता (केवल Android/Baidu/Huawei)। |
ios_interruption_level | string | passive, active, time-sensitive, या critical (केवल iOS)। |