

์นํ
๋ฆฌ์คํ ๋ฒ ์ด ํผ ์ ์ถ ์, ๋ค๋ฅธ ์ฑ์ด๋ URL๋ก ์ ๋ณด๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค.
ย
ย
ย
ย
์๋ ์๋ฆฌ
ย
์๋ต์๊ฐ ๋ฆฌ์คํ ๋ฒ ์ด ์ค๋ฌธ์ ์ ์ถํ๋ฉด ์๋ต ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ์๋ฆผ์ด POST ์์ฒญ์ ํตํด JSON ํ์์ผ๋ก URL์ ์ ์ก๋ฉ๋๋ค .
ย
์ฐ๋ ๋ฐฉ๋ฒ
1๏ธโฃ

๊ฒฐ๊ณผ/์ฐ๋
๋ฉ๋ด ์๋์์ธ๋ถ ์ฑ ์ฐ๋
์ ํด๋ฆญํด์ฃผ์ธ์.
ย
ย
2๏ธโฃ

- ์นํ
์ฐ๊ฒฐํ๊ธฐ
ํด๋ฆญ
- ์ค๋ฌธ ๋น ์ต๋ 3๊ฐ ๊น์ง ๋ฑ๋ก ๊ฐ๋ฅ
ย
ย
3๏ธโฃ

โ ์ค๋ฌธ๋ณ๋ก ์ต๋ 3๊ฐ ๊น์ง ๋ฑ๋กํ ์ ์์ต๋๋ค
ย
Endpoint URL
ย
POST ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์นํ
์์ฒญ์ ์๋ฝํ ์ ์๋ HTTP ๋๋ HTTPS ์๋ํฌ์ธํธ๋ฅผ ์ค์ ํฉ๋๋ค.
ย
- JSON ํ์ด๋ก๋๋ก POST ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
- 3์ด ์ด๋ด์ ์ฑ๊ณต ์ํ ์ฝ๋(2XX)๋ฅผ ๋ฐํํฉ๋๋ค.
ย
์ ์ ์ถ์ ์ฒ๋ฆฌํ๊ณ ์๋ตํ๋ ๋ฐ 3์ด์ ์ ํ ์๊ฐ์ด ์์ต๋๋ค.
์ฒ๋ฆฌ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆฌ๋ฉด ๋ด๋ถ์ ์ผ๋ก ๋ค๋ฅธ ์๋น์ค๋ฅผ ํธ์ถํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ย
Signing secret
Signing secret์ ์ฌ์ฉํ์ฌ ํด๋น ์์ฒญ์ด ๋ฆฌ์คํ ๋ฒ ์ด ์๋ฒ์์ ์จ๊ฒ์ธ์ง ํ์ธํจ์ผ๋ก์จ ์นํ
์ ๋ณดํธํฉ๋ค.
- ์ด ์ต์
์ด ํ์ฑํ๋๋ฉด ์นํ
์์ฒญ์
Listovey-Signature
ํค๋๊ฐ ํฌํจ๋ฉ๋๋ค.
- ์ด ํค๋์ ๊ฐ์ ์นํ ํ์ด๋ก๋์ SHA256 ์ํธํ ํด์์ ๋๋ค.
ย
ย
Node.js ์์
const crypto = require('crypto') app.use(express.json()); app.post('/webhook', (req, res) => { const payload = req.body; const listoveySignature = req.headers['listovey-signature']; // 'SIGNING_SECRET' ๋ถ๋ถ์ ๋ฆฌ์คํ ๋ฒ ์ด์์ ๋ฑ๋กํ Signing secret ๊ฐ์ผ๋ก ๋ณ๊ฒฝ const mySigningSecret = 'SIGNING_SECRET'; // signing secret๊ณผ payload๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ฐ const payloadSignature = crypto.createHmac('sha256', mySigningSecret) .update(JSON.stringify(payload)) .digest('base64'); // listoveySignature ์ payloadSignature ๊ฐ์ ๋น๊ต if (signature === payloadSignature) { // ์ ํจํ ์๋ช res.status(200).send('success.'); } else { // ์ ํจํ์ง ์์ ์๋ช res.status(401).send('invalid signature.'); } });
ย
Java ์์
import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Base64; import static spark.Spark.*; public class Main { public static void main(String[] args) { post("/webhook", (req, res) -> { String payload = req.body(); String listoveySignature = req.headers("listovey-signature"); // 'SIGNING_SECRET' ๋ถ๋ถ์ ๋ฆฌ์คํ ๋ฒ ์ด์์ ๋ฑ๋กํ Signing secret ๊ฐ์ผ๋ก ๋ณ๊ฒฝ String mySigningSecret = "SIGNING_SECRET"; // signing secret๊ณผ payload๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ฐ String payloadSignature = calculateHmacSHA256(payload, mySigningSecret); // listoveySignature ์ payloadSignature ๊ฐ์ ๋น๊ต if (listoveySignature.equals(payloadSignature)) { // ์ ํจํ ์๋ช return "success."; } else { // ์ ํจํ์ง ์์ ์๋ช return "invalid signature."; } }); } private static String calculateHmacSHA256(String data, String key) throws NoSuchAlgorithmException, InvalidKeyException { Mac sha256Hmac = Mac.getInstance("HmacSHA256"); SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "HmacSHA256"); sha256Hmac.init(secretKey); byte[] hmacData = sha256Hmac.doFinal(data.getBytes()); return Base64.getEncoder().encodeToString(hmacData); } }
ย
Python ์์
import hashlib import hmac from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/webhook', methods=['POST']) def webhook(): payload = request.json listovey_signature = request.headers.get('listovey-signature') # 'SIGNING_SECRET' ๋ถ๋ถ์ ๋ฆฌ์คํ ๋ฒ ์ด์์ ๋ฑ๋กํ Signing secret ๊ฐ์ผ๋ก ๋ณ๊ฒฝ my_signing_secret = 'SIGNING_SECRET' # signing secret๊ณผ payload๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ฐ payload_signature = hmac.new(my_signing_secret.encode('utf-8'), msg=json.dumps(payload).encode('utf-8'), digestmod=hashlib.sha256).digest() payload_signature = payload_signature.hex() # listovey_signature ์ payload_signature ๊ฐ์ ๋น๊ต if listovey_signature == payload_signature: # ์ ํจํ ์๋ช return 'success.', 200 else: # ์ ํจํ์ง ์์ ์๋ช return 'invalid signature.', 401 if __name__ == '__main__': app.run()
ย
์์ฒญ ์คํจ ๋ฐ ์ฌ์๋
ย
์นํ
์๋ํฌ์ธํธ๊ฐ 3์ด ์ด๋ด์ ์ฑ๊ณต์ ์ธ ์ํ ์ฝ๋(2XX)๋ฅผ ๋ฐํํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ ์ฌ์๋ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์ ์ถ ์ ๋ฌ์ ์๋ํฉ๋๋ค. ์ฌ์๋ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ย
์นํ
์๋ํฌ์ธํธ๊ฐ 3์ด ์ด๋ด์ ์ฑ๊ณต์ ์ธ ์ํ ์ฝ๋(2XX)๋ฅผ ๋ฐํํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ ๋ค์ ๊ท์น์ ์ฌ์ฉํ์ฌ ์๋ํฌ์ธํธ์ ๋ํ ์์ฒญ์ ๋ค์ ์๋ํฉ๋๋ค.
- HTTP ์ํ๊ฐย
410 Gone
404 Not Found
๋ก ์์ ๋๋ฉด ์ฌ์๋๊ฐ ์ํ๋์ง ์๊ณ ์นํํฌ๊ฐ ์ฆ์ ๋นํ์ฑํ๋๋ฉฐ ๊ฐ์ ๋ ์ด๋ฉ์ผ ๊ณ์ ์ผ๋ก ์๋ด ๋๋ฆฝ๋๋ค.
- ๋ค๋ฅธ HTTP ์ฝ๋๊ฐ ์์ ๋๋ฉด 5๋ถ, 30๋ถ, 1์๊ฐ, 2์๊ฐ, 6์๊ฐ ํ์ ์๋ํฌ์ธํธ์ ๋ํ ์์ฒญ์ 5๋ฒ ๋ค์ ์๋ํฉ๋๋ค.
- HTTP ์ํ๊ฐ ย
429 Too Many Requests
408 Timeout
503 Service Unavailable
423 Locked
์ผ๋ก ์์ ๋๋ฉด ์ฌ์๋ ์๊ฐ์ 1~3,000์ด ์ฌ์ด๋ก ์๊ฐ์ด ์ถ๊ฐ๋์ด ๋ค์ ์๋ํฉ๋๋ค.
ย
์๋ ๋นํ์ฑํ
ย
ํ๋ฃจ ๋์ 100ํ ์ด์์ ์ ๋ฌ ์๋๋ก 100% ์คํจํ๋ ๊ฒฝ์ฐ ํด๋น ์นํ
์ ์ค์งํ๊ณ ์ด๋ฉ์ผ ๊ณ์ ์ผ๋ก ์๋ดํด ๋๋ฆฝ๋๋ค.
ย
ย
์นํ ๊ด๋ฆฌ
ย
์นํ
URL์ด ํ์๋๊ณ ํ ๊ธ์ ํด๋ฆญํ๋ฉด ์นํ
URL์ ์ฐ๊ฒฐํ๊ณ ์ผ์์ค์งํ ์ ์์ต๋๋ค.
ย

ย
์ด๋ฒคํธ ๋ก๊ทธ๋ฅผ ๋ณด๋ ค๋ฉด ๋ก๊ทธย ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- ์ด ๋ก๊ทธ์๋ ์นํ ์๋ํฌ์ธํธ์ ๋ํ ์ต๊ทผ 31์ผ ๋์์ ์์ฒญ์ ํ์ธ ํ ์ ์์ต๋๋ค.
- ์ฌ๋ฐ์ก ๊ธฐ๋ฅ์ผ๋ก ์คํจํ ์ด๋ฒคํธ์ ๋ํด ์๋์ผ๋ก ๋ค์ ๋ฐ์กํ ์ ์์ต๋๋ค.
- ํ ์คํธ ์ด๋ฒคํธ ๋ฐ์ก์ผ๋ก ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋ณผ ์ ์์ต๋๋ค. (ํ๋๊ณผ ์๊ด ์์ด ์ด์ฉ ๊ฐ๋ฅ)
ย

ย
์นํ
์ ์์ ํ์๋ ค๋ฉด [์์ ] ๋ฒํผ์, ์ญ์ ํ์๋ ค๋ฉด [์ญ์ ] ๋ฒํผ์ ํด๋ฆญ ํฉ๋๋ค.
ย
์นํ ์ด๋ฒคํธ ์์
์ด ์์ ์ด๋ฒคํธ์๋ ๋ฆฌ์คํ ๋ฒ ์ด๊ฐ ์ง์ํ๋ ๋ชจ๋ ์ ํ์ ํ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
ย
POST /[webhook_url] HTTP/1.1 "content-type": "application/json; charset=UTF-8" "user-agent": "Listovey webhook"
{ "eventId": "912ba841-32a8-4e64-b7f9-c92f480b0dfc", "eventType": "FORM_RESPONSE", "createdAt": "2024-03-05T03:26:37.430Z", "data": { "response": { "responseId": "R17E1Gc", "createdAt": "2024-03-05T03:26:37.402Z", "submittedAt": "2024-03-05T03:26:37.402Z" }, "form": { "formId": "S7877", "title": "์ ์ฒด๋ฌธํญ", "fields": [ { "id": "Q114003", "no": 1, "title": "๋จ์ผ์ ํํ", "type": "SINGLE-CHOICE", "choices": [ { "id": "_01163458", "text": "์ ํ 1" }, { "id": "_01163459", "text": "์ ํ 2" } ], "value": { "id": "_01163458", "commentValue": "TEST" } }, { "id": "Q114004", "no": 2, "title": "๋ค์ค์ ํํ", "type": "MULTI-CHOICE", "choices": [ { "id": "_0242743", "text": "์ ํ 1" }, { "id": "_0242744", "text": "์ ํ 2" } ], "value": [ { "id": "_0242743", "commentValue": "TEST" } ] }, { "id": "Q114005", "no": 3, "title": "๋๋กญ๋ค์ดํ", "type": "DROPDOWN", "choices": [ { "id": "_214436", "text": "์ต์ 1" }, { "id": "_214437", "text": "์ต์ 2" } ], "value": [ "_214436" ], "commentValue": "" }, { "id": "Q114006", "no": 4, "title": "๋จ์ผ์ ํํ ๋งคํธ๋ฆญ์ค", "type": "SINGLE-MATRIX", "rows": [ { "id": "row_0318066", "text": "ํญ๋ชฉ 1" }, { "id": "row_0318067", "text": "ํญ๋ชฉ 2" } ], "columns": [ { "id": "col_0316013", "text": "์ ํ 1" }, { "id": "col_0316014", "text": "์ ํ 2" } ], "value": { "row_0318066": "col_0316013", "row_0318067": "col_0316013" }, "commentValue": "" }, { "id": "Q114007", "no": 5, "title": "๋ค์ค์ ํํ ๋งคํธ๋ฆญ์ค", "type": "MULTI-MATRIX", "rows": [ { "id": "row_044827", "text": "ํญ๋ชฉ 1" }, { "id": "row_044828", "text": "ํญ๋ชฉ 2" } ], "columns": [ { "id": "col_044000", "text": "์ ํ 1" }, { "id": "col_044001", "text": "์ ํ 2" } ], "value": { "row_044827": [ "col_044000" ], "row_044828": [ "col_044000" ] }, "commentValue": "TEST" }, { "id": "Q114008", "no": 6, "title": "์ด๋ฏธ์ง ๋จ์ผ์ ํํ", "type": "SINGLE-IMAGE-CHOICE", "choices": [ { "id": "_1217029", "text": "์ ํ 1" }, { "id": "_1217030", "text": "์ ํ 2" } ], "value": { "id": "_1217029", "commentValue": "TEST" } }, { "id": "Q114009", "no": 7, "title": "์ด๋ฏธ์ง ๋ค์ค์ ํํ", "type": "MULTI-IMAGE-CHOICE", "choices": [ { "id": "_1311411", "text": "์ ํ 1" }, { "id": "_1311412", "text": "์ ํ 2" } ], "value": [ { "id": "_1311411", "commentValue": "" } ] }, { "id": "Q114010", "no": 8, "title": "๊ฐ๋กํ ํ๊ฐ์ฒ๋", "type": "HORIZONTAL-SCALE", "choices": [ { "id": "_0558500", "no": 1 }, { "id": "_0558501", "no": 2 }, { "id": "_0558502", "no": 3 }, { "id": "_0558503", "no": 4 }, { "id": "_0558504", "no": 5 } ], "value": "_0558500", "commentValue": "" }, { "id": "Q114011", "no": 9, "title": "๊ฐ๋กํ ํ๊ฐ์ฒ๋ ๊ทธ๋ฃน", "type": "HORIZONTAL-SCACLE-GROUP", "rows": [ { "id": "row_0610318", "text": "ํญ๋ชฉ 1" }, { "id": "row_0610319", "text": "ํญ๋ชฉ 2" } ], "columns": [ { "id": "col_0612615", "no": 1 }, { "id": "col_0612616", "no": 2 }, { "id": "col_0612617", "no": 3 }, { "id": "col_0612618", "no": 4 }, { "id": "col_0612619", "no": 5 } ], "value": { "row_0610318": "col_0612615", "row_0610319": "col_0612615" }, "commentValue": "" }, { "id": "Q114012", "no": 10, "title": "์ธ๋กํ ํ๊ฐ์ฒ๋", "type": "VERTICAL-SCALE", "choices": [ { "id": "_0714754", "text": "์ ํ 1", "no": 1 }, { "id": "_0714755", "text": "์ ํ 2", "no": 2 }, { "id": "_0714756", "text": "์ ํ 3", "no": 3 }, { "id": "_0714757", "text": "์ ํ 4", "no": 4 }, { "id": "_0714758", "text": "์ ํ 5", "no": 5 } ], "value": "_0714754", "commentValue": "" }, { "id": "Q114013", "no": 11, "title": "์ธ๋กํ ํ๊ฐ์ฒ๋ ๊ทธ๋ฃน", "type": "VERTICAL-SCALE-GROUP", "rows": [ { "id": "row_081432", "text": "ํญ๋ชฉ 1" }, { "id": "row_081433", "text": "ํญ๋ชฉ 2" } ], "columns": [ { "id": "col_082006", "text": "์ ํ 1", "no": 1 }, { "id": "col_082007", "text": "์ ํ 2", "no": 2 }, { "id": "col_082008", "text": "์ ํ 3", "no": 3 }, { "id": "col_082009", "text": "์ ํ 4", "no": 4 }, { "id": "col_082010", "text": "์ ํ 5", "no": 5 } ], "value": { "row_081432": "col_082006", "row_081433": "col_082006" }, "commentValue": "" }, { "id": "Q114014", "no": 12, "title": "์ถ์ฒํ", "type": "RECOMMEND", "choices": [ { "id": "_146001", "text": "์ ํ 1", "no": 1 }, { "id": "_146002", "text": "์ ํ 2", "no": 2 }, { "id": "_146003", "text": "์ ํ 3", "no": 3 }, { "id": "_146004", "text": "์ ํ 4", "no": 4 }, { "id": "_146005", "text": "์ ํ 5", "no": 5 } ], "value": "_146001", "commentValue": "" }, { "id": "Q114015", "no": 13, "title": "์ถ์ฒํ ๊ทธ๋ฃน", "type": "RECOMMEND-GROUP", "rows": [ { "id": "row_152142", "text": "ํญ๋ชฉ 1" }, { "id": "row_152143", "text": "ํญ๋ชฉ 2" } ], "columns": [ { "id": "col_153104", "text": "์ ํ 1", "no": 1 }, { "id": "col_153105", "text": "์ ํ 2", "no": 2 }, { "id": "col_153106", "text": "์ ํ 3", "no": 3 }, { "id": "col_153107", "text": "์ ํ 4", "no": 4 }, { "id": "col_153108", "text": "์ ํ 5", "no": 5 } ], "value": { "row_152142": "col_153104", "row_152143": "col_153104" }, "commentValue": "" }, { "id": "Q114016", "no": 14, "title": "ํ์ ๊ฒ์ฌ ์ ๋ ฅํ - ํ ์คํธ", "type": "INPUT", "kind": "TEXT", "value": "TEST" }, { "id": "Q114048", "no": 15, "title": "ํ์ ๊ฒ์ฌ ์ ๋ ฅํ - ์ซ์", "type": "INPUT", "kind": "NUMBER", "value": "1" }, { "id": "Q114049", "no": 16, "title": "ํ์ ๊ฒ์ฌ ์ ๋ ฅํ - ์ด๋ฉ์ผ", "type": "INPUT", "kind": "EMAIL", "value": "test@listovey.com" }, { "id": "Q114050", "no": 17, "title": "ํ์ ๊ฒ์ฌ ์ ๋ ฅํ - ์ ํ๋ฒํธ", "type": "INPUT", "kind": "PHONE", "value": "+82 0100000000" }, { "id": "Q114051", "no": 18, "title": "ํ์ ๊ฒ์ฌ ์ ๋ ฅํ - ๋ ์ง", "type": "INPUT", "kind": "DATE", "value": "2024-03-05" }, { "id": "Q114042", "no": 19, "title": "์ฅ๋ฌธ ์์ ํ", "type": "TEXTAREA", "value": "TEST 1\nTEST 2\nEST 3" }, { "id": "Q114043", "no": 20, "title": "์ฃผ์ ์ ๋ ฅํ", "type": "ADDRESS", "value": { "zipcode": "01014", "address1": "์์ธ ๊ฐ๋ถ๊ตฌ 4.19๋ก11๊ธธ 6", "address2": "1130ํธ" } }, { "id": "Q114044", "no": 21, "title": "D&D ์์ํ", "type": "RANKING-DRAG", "choices": [ { "id": "_113789", "text": "์ ํ 1" }, { "id": "_113790", "text": "์ ํ 2" }, { "id": "_113791", "text": "์ ํ 3" } ], "value": [ "_113789", "_113790", "_113791" ], "commentValue": "" }, { "id": "Q114045", "no": 22, "title": "Click ์์ํ", "type": "RANKING-CLICK", "choices": [ { "id": "_177231", "text": "์ ํ 1" }, { "id": "_177232", "text": "์ ํ 2" }, { "id": "_177233", "text": "์ ํ 3" } ], "value": [ { "id": "_177231", "commentValue": "" }, { "id": "_177232", "commentValue": "" } ] }, { "id": "Q114046", "no": 23, "title": "์ด๋ฏธ์ง Click ์์ํ", "type": "RANKING-IMAGE-CLICK", "choices": [ { "id": "_181230", "text": "์ ํ 1" }, { "id": "_181231", "text": "์ ํ 2" }, { "id": "_181232", "text": "์ ํ 3" } ], "value": [ { "id": "_181230", "commentValue": "" }, { "id": "_181231", "commentValue": "" } ] }, { "id": "Q114047", "no": 24, "title": "ํ์ผ ์ ๋ก๋ํ", "type": "FILEUPLOAD", "value": { "filename": "best.png", "filetype": "image/png", "filesize": 46828, "src": "https://cdn.listovey.com/2205/4775/59855/5b358f18-2bfc-4925-9b06-a31aa64836fb2205477559855.png" }, "commentValue": "" }, { "type": "ENDING", "choices": [ { "id": "_E10142", "text": "์๋ฃ๊ธ 1" }, { "id": "_E10143", "text": "์๋ฃ๊ธ 2" } ], "value": "_E10142" }, { "type": "POINT", "value": 11 } ] } } }
ย
Event information
ELEMENT | TYPE | DESCRIPTION |
eventId | string | ์นํ
์ ๊ณ ์ ID ์ด๋ฉฐ, ์๋์ผ๋ก ํ ๋น๋ฉ๋๋ค.
ํ
์คํธ ๊ธธ์ด๋ 36์๋ก ๊ณ ์ ๋ฉ๋๋ค. |
eventType | string | ํ
์คํธ ์ด๋ฒคํธ ๋ฐ์ก: TEST_RESPONSE
ํผ ์ ์ถ: FORM_RESPONSE |
createdAt | string | ์นํ
์ด๋ฒคํธ ์ ์ก ์๊ฐ์
๋๋ค.
ISO 8601 ํ์์ UTC ์๊ฐ์ ์ฌ์ฉํฉ๋๋ค. |
object | response: ์๋ต์์ ์ ๋ณด
form: ํผ ๋ต๋ณ ์ ๋ณด |
Response information
ELEMENT | TYPE | DESCRIPTION |
responseId | string | ์๋ต์์ ๊ณ ์ ID ์ด๋ฉฐ, ์๋์ผ๋ก ํ ๋น๋ฉ๋๋ค.
ํ
์คํธ ๊ธธ์ด๋ ์ต์ 7์, ์ต๋ 52์ ์
๋๋ค. |
createdAt | string | ์๋ต์์ ์ค๋ฌธ ์ต์ด ์ ์ ์๊ฐ์
๋๋ค.
ISO 8601 ํ์์ UTC ์๊ฐ์ ์ฌ์ฉํฉ๋๋ค. |
submittedAt | string | ์๋ต์์ ์ค๋ฌธ ์ ์ถ ์๊ฐ์
๋๋ค.
ISO 8601 ํ์์ UTC ์๊ฐ์ ์ฌ์ฉํฉ๋๋ค. |
Form information
ELEMENT | TYPE | DESCRIPTION |
formId | string | ์ค๋ฌธ์ ๊ณ ์ ID ์ด๋ฉฐ, ์๋์ผ๋ก ํ ๋น๋ฉ๋๋ค.
ํ
์คํธ ๊ธธ์ด๋ ์ต์ 3์, ์ต๋ 52์ ์
๋๋ค. |
title | string | ์ค๋ฌธ์ ์ ๋ชฉ์
๋๋ค. |
array | ์ค๋ฌธ ๋ด ๋ฌธํญ์ ๋ด์ฉ์ ๋ฐฐ์ด ํ์์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. |
Fields information
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
id | ใ
ค | string | ์ค๋ฌธ ๋ฌธํญ์ ๊ณ ์ ID ์ด๋ฉฐ, ์๋์ผ๋ก ํ ๋น๋ฉ๋๋ค.
ํ
์คํธ ๊ธธ์ด๋ ์ต๋ 52์ ์
๋๋ค. |
no | ใ
ค | number | ์ค๋ฌธ ๋ฌธํญ์ ๋ฒํธ์
๋๋ค. |
title | ใ
ค | string | ์ค๋ฌธ ๋ฌธํญ์ ๋ด์ฉ์
๋๋ค. |
choices | ใ
ค | object[] | ๋ฌธํญ-๋ณด๊ธฐ ์ ํ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฌธํญ์์ ์ฌ์ฉ |
ใ
ค | id | string | ๋ณด๊ธฐ์ ๊ณ ์ ID ์ด๋ฉฐ, ์๋์ผ๋ก ํ ๋น๋ฉ๋๋ค.
ํ
์คํธ ๊ธธ์ด๋ ์ต๋ 52์ ์
๋๋ค. |
ใ
ค | text | string | ๋ณด๊ธฐ์ ๋ด์ฉ์
๋๋ค. |
ใ
ค | no | number | ์ฒ๋ํ ๊ฐ์ด ๋ฒ์์ ์์๋ฅผ ๋ํ๋ด๋ ๊ฐ |
rows | ใ
ค | object[] | ๋ฌธํญ-ํญ๋ชฉ-๋ณด๊ธฐ ์ ํ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฌธํญ์์ ์ฌ์ฉํ๋
ํญ๋ชฉ ๋ถ๋ถ |
ใ
ค | id | string | ํญ๋ชฉ์ ๊ณ ์ ID ์ด๋ฉฐ, ์๋์ผ๋ก ํ ๋น๋ฉ๋๋ค.
ํ
์คํธ ๊ธธ์ด๋ ์ต๋ 52์ ์
๋๋ค. |
ใ
ค | text | string | ํญ๋ชฉ์ ๋ด์ฉ์
๋๋ค. |
columns | ใ
ค | object[] | ๋ฌธํญ-ํญ๋ชฉ-๋ณด๊ธฐ ์ ํ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฌธํญ์์ ์ฌ์ฉํ๋
๋ณด๊ธฐ ๋ถ๋ถ |
ใ
ค | id | string | ํญ๋ชฉ์ ๊ณ ์ ID ์ด๋ฉฐ, ์๋์ผ๋ก ํ ๋น๋ฉ๋๋ค.
ํ
์คํธ ๊ธธ์ด๋ ์ต๋ 52์ ์
๋๋ค. |
ใ
ค | text | string | ๋ณด๊ธฐ์ ๋ด์ฉ์
๋๋ค. |
ใ
ค | no | number | ์ฒ๋ํ ๊ฐ์ด ๋ฒ์์ ์์๋ฅผ ๋ํ๋ด๋ ๊ฐ |
ใ
ค | string,
string[],
object,
object[] | ๋ฌธํญ ์ข
๋ฅ์ ๋ฐ๋ผ value ํํ๊ฐ ๋ค๋ฆ
๋๋ค.
| |
commentValue | ใ
ค | string | ๋ฌธํญ์ ๋ํ ์ฝ๋ฉํธ |
kind | ใ
ค | string | ํ์
๊ฒ์ฌ ์
๋ ฅํ ์ ํ
โTEXTโ: ํ
์คํธ ์
๋ ฅ
โNUMBERโ: ์ซ์ ์
๋ ฅ
โEMAILโ: ์ด๋ฉ์ผ ์
๋ ฅ
โPHONEโ: ์ ํ๋ฒํธ ์
๋ ฅ
โDATEโ: ๋ ์ง ์
๋ ฅ |
Value information
ย
๋จ์ผ ์ ํํ, ์ด๋ฏธ์ง ๋จ์ผ ์ ํํ (๋จ์ผ ์ ํ์ด๋ฉด์ ๊ฐ ๋ณด๊ธฐ๋ง๋ค ์ฝ๋ฉํธ ์ถ๊ฐํ ์ ์๋ ๋ฌธํญ)
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | object | ใ
ค |
ใ
ค | id | string | ์ ํ๋ ๋ณด๊ธฐ์ ๊ณ ์ ID |
ใ
ค | commentValue | string | ์ ํ๋ ๋ณด๊ธฐ์ ์ฝ๋ฉํธ ๋ด์ฉ (์ถ๊ฐ ์ฌ๋ถ์ ์๊ด์์ด ๋ํ๋จ) |
ย
๋ค์ค ์ ํํ, ์ด๋ฏธ์ง ๋ค์ค ์ ํํ (๋ค์ค ์ ํ์ด๋ฉด์ ๊ฐ ๋ณด๊ธฐ๋ง๋ค ์ฝ๋ฉํธ ์ถ๊ฐํ ์ ์๋ ๋ฌธํญ)
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | object[] | ใ
ค |
ใ
ค | id | string | ์ ํ๋ ๋ณด๊ธฐ์ ๊ณ ์ ID |
ใ
ค | commentValue | string | ์ ํ๋ ๋ณด๊ธฐ์ ์ฝ๋ฉํธ ๋ด์ฉ (์ถ๊ฐ ์ฌ๋ถ์ ์๊ด์์ด ๋ํ๋จ) |
ย
๋๋กญ๋ค์ดํ (๋จ์ผ / ๋ค์ค ํํ๋ฅผ ์ ํํ ์ ์๋ ๋ฌธํญ)
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | string[] | ์ ํ๋ ๋ณด๊ธฐ์ ๊ณ ์ ID |
ย
๋จ์ผ์ ํํ ๋งคํธ๋ฆญ์ค, ๊ฐ๋กํ/์ธ๋กํ ํ๊ฐ์ฒ๋ ๊ทธ๋ฃน, ์ถ์ฒํ ๊ทธ๋ฃน (ํญ๋ชฉ๋ง๋ค ๋จ์ผ ์ ํ์ธ ๋ฌธํญ)
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | object[] | โkeyโ: ํญ๋ชฉ์ ๊ณ ์ ID
โvalueโ: ์ ํ๋ ๋ณด๊ธฐ์ ๊ณ ์ ID |
ย
๋ค์ค์ ํํ ๋งคํธ๋ฆญ์ค
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | object[] | โkeyโ: ํญ๋ชฉ์ ๊ณ ์ ID
โvalue[]โ: ์ ํ๋ ๋ณด๊ธฐ์ ๊ณ ์ ID |
ย
๊ฐ๋กํ/์ธ๋กํ ํ๊ฐ์ฒ๋, ์ถ์ฒํ (๋จ์ผ ์ ํ ํํ)
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | string | ์ ํ๋ ๋ณด๊ธฐ์ ๊ณ ์ ID |
ย
ํ์
๊ฒ์ฌ ์
๋ ฅํ, ์ฅ๋ฌธ ์์ ํ (๋ต๋ณ์ด text ํํ)
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | string | ๋ต๋ณ ๋ด์ฉ |
ย
์ฃผ์ ์
๋ ฅํ
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | object | ใ
ค |
ใ
ค | zipcode | string | ์ฐํธ๋ฒํธ |
ใ
ค | address1 | string | ๊ธฐ๋ณธ ์ฃผ์ |
ใ
ค | address2 | string | ์์ธ ์ฃผ์ |
ย
D&D ์์ํ
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | string[] | ์ ํํ ๋ณด๊ธฐ์ ๊ณ ์ ID
์ฒซ ๋ฒ์งธ ๋ฐฐ์ด๋ถํฐ 1์์ |
ย
Click ์์ํ, ์ด๋ฏธ์ง Click ์์ํ (์์ํ์ด๋ฉด์, ๊ฐ ๋ณด๊ธฐ๋ง๋ค ์ฝ๋ฉํธ๋ฅผ ์ถ๊ฐํ ์ ์๋ ๋ฌธํญ)
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | object[] | ใ
ค |
ใ
ค | id | string | ์ ํํ ๋ณด๊ธฐ์ ๊ณ ์ ID
์ฒซ ๋ฒ์งธ ๋ฐฐ์ด๋ถํฐ 1์์ |
ใ
ค | commentValue | string | ์ ํ๋ ๋ณด๊ธฐ์ ์ฝ๋ฉํธ ๋ด์ฉ (์ถ๊ฐ ์ฌ๋ถ์ ์๊ด์์ด ๋ํ๋จ) |
ย
ํ์ผ ์
๋ก๋ํ
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | object | ใ
ค |
ใ
ค | filename | string | ํ์ผ๋ช
|
ใ
ค | filetype | string | ํ์ผ ํ์
|
ใ
ค | filesize | number | ํ์ผ ํฌ๊ธฐ (byte) |
ใ
ค | src | string | ํ์ผ์ด ์ ์ฅ๋ ์ฃผ์ |
ย
์๋ฃ๊ธ (2๊ฐ ์ด์์ผ ๊ฒฝ์ฐ ๋ํ๋จ)
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | string | ์ ์ถ ํ ๋์ฐฉํ ์๋ฃ๊ธ์ ๊ณ ์ ID |
ย
ํฌ์ธํธ (ํด์ฆ ๋ฐฉ์ - ํฌ์ธํธ ํฉ์ฐ ๋ฐฉ์ ์ฌ์ฉ์ ๋ํ๋จ)
ELEMENT | ใ
ค | TYPE | DESCRIPTION |
{value} | ใ
ค | number | ํฌ์ธํธ ๊ฐ |
ย
ย
ย
์คํ ๋ค๋ / ํ๋ฆฌ๋ฏธ์ ํ๋์์ ์ด์ฉ ๊ฐ๋ฅํฉ๋๋ค.
ย
ย
ย
ย

Help Center
How can we help?
์ค๋ฌธ ์ ์, ์ฒ์์ด์ ๊ฐ์?
ย
๋ฐฐํฌํ๊ธฐ
๋งํฌ ยท SNS ๊ณต์ QR ์ฝ๋์ด๋ฉ์ผ ยท ๋ด์ค๋ ํฐ์ ์ถ๊ฐ์๋ฒ ๋ฉ, ์์ฌ ์น์ฌ์ดํธ์ ์ค๋ฌธ ์ฌ๊ธฐย
์ ์ฉํ ์ค๋ฌธ ์ต์
ย
์ค๋ฌธ์ ๊ณ ์๊ฐ ๋๋ ๊ธธ, ์ด๋ ต์ง ์์์!
๋ฉค๋ฒ์ญ ์๋น์ค๋ก ์ ๋ฌด ๋ฅ๋ฅ ๐
ย
ย
๊ฒฐ์
ย
์์ฃผ ๋ฌป๋ ์ง๋ฌธ๊ณผ ๋ต๋ณ (FAQ)
ย
ย
์ค๋ฌธ ์์ ํ๋ฉด์ด ํ์๊ฒ ๋์์์ค๋ฌธ ๋น ๋ง๋ค ์ ์๋ ์ต๋ ๋ฌธํญ ์ & ์๋ต ๋ฐ์ดํฐ ์ย
ย
๋ฆฌ์คํ ๋ฒ ์ด์ ์ ์ํ๊ธฐ
ย

ย
ย
ย
Check the main features at once!