# 프리셋 API

## createPreset

`POST` `https://api.pushwoosh.com/json/1.3/createPreset`

새 프리셋을 생성합니다.

#### 요청 본문

| 이름                                                     | 타입    | 설명                                                                                                                                        |
| -------------------------------------------------------- | ------- |----------------------------------------------------------------------------------------------------------------------------------------------------|
| auth\*                   | string  | Pushwoosh Control Panel의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다.                                                                                                     |
| name\*                   | string  | 프리셋 이름입니다.                                                                                                                                       |
| applicationCode\*        | string  | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code)                                                                                                                      |
| campaignCode                                             | string  | 이 프리셋을 할당하려는 [캠페인 코드](/ko/developer/api-reference/api-identifiers/#campaign-code)입니다.                                                                                        |
| content\*                | object  | 메시지 콘텐츠 매개변수입니다.                                                                                                                        |
| content.message\*        | string  | 문자열 또는 배열. 메시지 콘텐츠입니다. 문자열인 경우 "기본" 언어가 사용됩니다.                                                     |
| content.action                                           | object  | 사용자 지정 액션 매개변수입니다. 아래 예시를 참조하세요.                                                                                                   |
| content.userData                                         | array   | 사용자 지정 데이터입니다. 페이로드에서 "u" 매개변수로 전달됩니다 (JSON 문자열로 변환됨).                                                       |
| content.properties                                       | array   | 다양한 플랫폼을 위한 특정 콘텐츠입니다. 아래 예시를 참조하세요.                                                                                   |
| scheduling.sendRate                                      | integer | 전송 속도 제한. 유효한 값은 초당 100에서 1000 푸시입니다.                                                                                       |
| segmentation                                             | object  | 세분화 매개변수                                                                                                                            |
| segmentation.filter                                      | string  | [세그먼트(필터) 이름](/ko/developer/api-reference/api-identifiers/#segment--filter-name)                                                                                                                                        |
| segmentation.platforms\* | array   | 정수 배열. 플랫폼 ID 목록입니다. 1 - iOS, 3 - Android, 7 - Mac OS X, 8 - Windows, 9 - Amazon, 10 - Safari, 11 - Chrome, 12 - Firefox. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK"
}
```
</TabItem>
</Tabs>

```json title="예시"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",        // 필수. Pushwoosh Control Panel의 API 액세스 토큰입니다.
    "name": "PRESET_NAME",                 // 필수.
    "applicationCode": "XXXXX-XXXXX",      // 필수. Pushwoosh 애플리케이션 코드입니다.
    "applicationGroupCode": "AAAAA-BBBBB", // 선택. "applicationCode" 대신 사용할 수 있습니다.
    "campaignCode": "CCCCC-DDDDD",         // 선택. 캠페인 코드입니다.
    "content": {                           // 필수. 메시지 데이터를 포함합니다.
      "message": {                         // 필수. 문자열 또는 객체. 메시지 콘텐츠입니다. 만약
        "en": "English message",           //           문자열인 경우 기본 언어가 사용됩니다.
        "fr": "French message"             //           다양한 언어로 현지화된 메시지 콘텐츠입니다.
      },                                   //           언어 코드에는 ISO 639-1:2002만 사용합니다.
      "title": {                           // 선택. 문자열 또는 객체. 다국어의 경우 제목을 설정하세요.
        "en": "English title",             //           객체의 각 언어에 대해. 만약 무시됩니다.
        "fr": "French title"               //           플랫폼별 제목이 지정된 경우 (예:
      },                                   //           'ios_title', 'android_header' 등; 참조하세요.
                                           //           플랫폼별 매개변수 예시는
                                           //           /createMessage API에 있습니다).
      "subtitle": {                        // 선택. 문자열 또는 객체. 다국어의 경우 제목을 설정하세요.
        "en": "English subtitle",          //           객체의 각 언어에 대해. 만약 무시됩니다.
        "fr": "French subtitle"            //           플랫폼별 자막이 지정된 경우 (예:
      },                                   //           'ios_subtitle' 등; /createMessage API의
                                           //           플랫폼별 매개변수 예시를 참조하세요).
      "action": {                          // 선택. 사용자가 메시지를 열 때 수행할 액션입니다.
        "type": "url",                     // 선택. 액션 유형입니다. 사용 가능한 유형: "url", "deepLink",
                                           //            "richMedia", "openApp"(기본값).
        "options": {                       // 선택. 액션 유형에 대한 옵션입니다. "openApp"을 제외한 모든
                                           //           액션 유형에 필요합니다.
          "url": "https://example.com",    // "url" 액션 유형에 필요, 문자열. 단축기가 정의된 경우
                                           //           단축됩니다.
          "shortener": 2,                  // 선택. 사용 가능한 값: 0 - 최소화 안 함, 2 - bit.ly.
                                           //           단축기가 지정되지 않은 경우 bit.ly 단축기가
                                           //           기본적으로 사용됩니다.
          "richMediaCode": "BBBBB-AAAAA",  // "richMedia" 액션 유형에 필요, 문자열.
                                           //           Pushwoosh Control Panel의 Rich Media 코드입니다.
          "id": 123,                       // "deepLink" 액션 유형에 필요, 정수. Deep Link ID입니다.
          "params": {                      // 선택, 사용자 지정 매개변수, "deepLink" 액션 유형에 필요, 배열.
            "param1": "value1",
            "param2": "value2"
          }
        }
      },
      "userData": {                        // 선택. 사용자 지정 데이터입니다. "u"로 전달됩니다.
        "CustomData": "value"              //           페이로드의 매개변수 (JSON 문자열로 변환됨).
      },
      "platforms": {
        "ios": {
          "sound": "default",
          "silent": 1,
          "ttl": 604800,
          "rootParams": {
            "rule_id": "12345",
            "screen_id": "34567"
          },
          "interruptionLevel": "active"
        },
        "android": {
          "rootParams": {
            "rule_id": "12345",
            "screen_id": "34567"
          }
        }
      }
    },
    "scheduling": {            // 선택. 예약 옵션입니다.
      "sendRate": 1000         // 선택. 전송 속도 제한. 유효한 값은 초당 100에서 1000 푸시입니다.
    },
    "segmentation": {          // 필수. 세분화 옵션입니다.
      "filter": "FILTER NAME", // 선택. Pushwoosh Control Panel의 필터 이름입니다.
      "platforms": [1, 3]      // 필수. 플랫폼 ID 목록: 1 — iOS; 3 — Android;
                               //           7 — Mac OS X; 8 — Windows; 9 — Amazon; 10 — Safari;
                               //           11 — Chrome; 12 — Firefox;
    }
  }
}
```

<Aside type="note">
플랫폼별 매개변수에 대해서는 [`/createMessage`](/ko/developer/api-reference/messages-api/#createmessage)를 참조하세요.
</Aside>

## getPreset

`POST` `https://api.pushwoosh.com/json/1.3/getPreset`

특정 푸시 프리셋의 매개변수를 검색합니다.

#### 요청 본문

| 이름                                           | 타입   | 설명                                    |
| ---------------------------------------------- | ------ | ---------------------------------------------- |
| auth\*         | string | Pushwoosh Control Panel의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다. |
| preset\_code\* | string | 정보를 검색할 푸시 [프리셋 코드](/ko/developer/api-reference/api-identifiers/#preset-code)입니다.  |

<Tabs>
<TabItem label="200">
```json
{ 
  "status_code": 200,
  "status_message": "OK",
  "response": { 
    "preset": { 
      "code": "XXXXX-XXXXX",
      "name": "Full preset",
      "page_id": 26,
      "url": null,
      "content": { 
        "en": "Some message",
        "de": "Eine Nachricht"
      },
      "properties": { 
        "ignore_user_timezone": 1,
        "ios_badges": "5",
        "ios_sound": "default",
        "ios_ttl": "43200",
        "android_sound": "Sound1.wav",
        "android_custom_icon": "icon.png",
        "android_header": "android_header",
        "android_gcm_ttl": "43200",
        "wns_type": "toast",
        "wns_content": { 
          "template": "ToastImageAndText02",
          "lang-en": { 
            "headlinetext": "Title",
            "bodytext": "super text"
          },
          "languages": ["en", "zh", "it", "sv", "de", "fr", "pt", "nl", "es"],
          "lang-zh": { 
            "headlinetext": "",
            "bodytext": ""
          },
          "lang-it": { 
            "headlinetext": "",
            "bodytext": ""
          },
          "lang-sv": { 
            "headlinetext": "",
            "bodytext": ""
          },
          "lang-de": { 
            "headlinetext": "",
            "bodytext": ""
          },
          "lang-fr": { 
            "headlinetext": "",
            "bodytext": ""
          },
          "lang-pt": { 
            "headlinetext": "",
            "bodytext": ""
          },
          "lang-nl": { 
            "headlinetext": "",
            "bodytext": ""
          },
          "lang-es": { 
            "headlinetext": "",
            "bodytext": ""
          },
          "imagesource": "https:\/\/image.com\/jpg"
        },
        "adm_sound": "song",
        "adm_custom_icon": "i5.bmp",
        "adm_header": "Amazon Header",
        "adm_ttl": "7200",
        "safari_title": "Safari title",
        "safari_action": "OK",
        "safari_url_args": ["hello.com", ""],
        "safari_ttl": "43200",
        "userdata": "{\"custom\":\"data\"}",
        "created_via": "CP",
        "user_id": 2,
        "filter_code": "1"
      },
      "platforms": [1, 3, 7, 10, 11]
    }
  }
}
```
</TabItem>
</Tabs>

```json title="예시"
{
  "request":{
    "auth": "yxoPUlwqm…………pIyEX4H", // 필수. Pushwoosh Control Panel의 API 액세스 토큰
    "preset_code": "AAAAA-BBBBB"    // 필수. 정보를 검색할 푸시 프리셋 코드
  }
}
```

## listPresets

`POST` `https://api.pushwoosh.com/json/1.3/listPresets`

앱에 대해 생성된 프리셋 목록을 검색합니다.

#### 요청 본문

| 이름                                          | 타입   | 설명                                    |
| --------------------------------------------- | ------ | ---------------------------------------------- |
| auth\*        | string | Pushwoosh Control Panel의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다. |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code)                           |

<Tabs>
<TabItem label="프리셋 없음">
```json
{
  "status_code": 200, 
  "status_message": "OK", 
  "response": {
    "presets": []
  }
}
```
</TabItem>

<TabItem label="프리셋 목록">
```json
{
  "status_code": 200, 
  "status_message": "OK", 
  "response": {
    "presets": [{
      "name": "test",
      "code": "AAAAA-BBBBB"
    }]
  }
}
```
</TabItem>
</Tabs>


```json
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",  // 필수. Pushwoosh Control Panel의 API 액세스 토큰
    "application": "XXXXX-XXXXX"     // 필수. Pushwoosh 애플리케이션 코드
  }
}
```

## deletePreset

`POST` `https://api.pushwoosh.com/json/1.3/deletePreset`

계정에서 프리셋을 삭제합니다.

#### 요청 본문

| 이름                                           | 타입   | 설명                                                                      |
| ---------------------------------------------- | ------ | -------------------------------------------------------------------------------- |
| auth\*         | string | Pushwoosh Control Panel의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다.                                   |
| preset\_code\* | string | Pushwoosh Control Panel 또는 `/listPresets` API 응답에서 검색한 [프리셋 코드](/ko/developer/api-reference/api-identifiers/#preset-code)입니다. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

```json title="예시"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H", // 필수. Pushwoosh Control Panel의 API 액세스 토큰
    "preset_code": "AAAAA-BBBBB"    // 필수. 삭제할 프리셋의 코드
  } 
}
```