Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Create and edit Tally forms via API. Use when building surveys, feedback forms, or questionnaires programmatically. Supports all question types including text inputs, multiple choice, checkboxes, ratings (via workaround), and more.
Create and edit Tally forms via API. Use when building surveys, feedback forms, or questionnaires programmatically. Supports all question types including text inputs, multiple choice, checkboxes, ratings (via workaround), and more.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Create and edit Tally.so forms programmatically via their REST API.
TALLY_KEY=$(cat ~/.config/tally/api_key)
ActionMethodEndpointList formsGEThttps://api.tally.so/formsGet formGEThttps://api.tally.so/forms/{id}Update formPATCHhttps://api.tally.so/forms/{id}Get submissionsGEThttps://api.tally.so/forms/{id}/submissions
Tally forms are composed of blocks. Questions require multiple blocks grouped by groupUuid: { "uuid": "q1-title", "type": "TITLE", "groupUuid": "group-q1", "groupType": "QUESTION", "payload": { "safeHTMLSchema": [["Question text here", [["tag", "span"]]]] } }, { "uuid": "q1-input", "type": "INPUT_TEXT", "groupUuid": "group-q1", "groupType": "QUESTION", "payload": {"isRequired": true} } Key: TITLE block + input block must share the same groupUuid.
FORM_TITLE - Form title and submit button TEXT - Paragraph text HEADING_1, HEADING_2, HEADING_3 - Section headers TITLE - Question label (inside QUESTION group) DIVIDER - Separator line
INPUT_TEXT - Short text INPUT_NUMBER - Number INPUT_EMAIL - Email INPUT_DATE - Date picker INPUT_PHONE_NUMBER - Phone TEXTAREA - Long text
MULTIPLE_CHOICE_OPTION - Single select (groupType: MULTIPLE_CHOICE) CHECKBOX - Multi select (groupType: CHECKBOXES) DROPDOWN_OPTION - Dropdown option
RATING - Stars don't display LINEAR_SCALE - Scale doesn't display Workaround: Use MULTIPLE_CHOICE_OPTION with star emojis.
{ "uuid": "title-001", "type": "FORM_TITLE", "groupUuid": "group-title", "groupType": "FORM_TITLE", "payload": { "title": "My Survey", "button": {"label": "Submit"} } }
{ "uuid": "sec1-head", "type": "HEADING_2", "groupUuid": "group-sec1", "groupType": "TEXT", "payload": { "safeHTMLSchema": [["๐ Section Title", [["tag", "span"]]]] } }
{ "uuid": "q1-title", "type": "TITLE", "groupUuid": "group-q1", "groupType": "QUESTION", "payload": { "safeHTMLSchema": [["What is your name?", [["tag", "span"]]]] } }, { "uuid": "q1-input", "type": "INPUT_TEXT", "groupUuid": "group-q1", "groupType": "QUESTION", "payload": {"isRequired": true} }
{ "uuid": "q2-title", "type": "TITLE", "groupUuid": "group-q2", "groupType": "QUESTION", "payload": { "safeHTMLSchema": [["How did you hear about us?", [["tag", "span"]]]] } }, { "uuid": "q2-opt1", "type": "MULTIPLE_CHOICE_OPTION", "groupUuid": "group-q2", "groupType": "MULTIPLE_CHOICE", "payload": {"isRequired": true, "index": 0, "isFirst": true, "isLast": false, "text": "Social media"} }, { "uuid": "q2-opt2", "type": "MULTIPLE_CHOICE_OPTION", "groupUuid": "group-q2", "groupType": "MULTIPLE_CHOICE", "payload": {"isRequired": true, "index": 1, "isFirst": false, "isLast": true, "text": "Friend referral"} }
{ "uuid": "q3-title", "type": "TITLE", "groupUuid": "group-q3", "groupType": "QUESTION", "payload": { "safeHTMLSchema": [["What features interest you?", [["tag", "span"]]]] } }, { "uuid": "q3-cb1", "type": "CHECKBOX", "groupUuid": "group-q3", "groupType": "CHECKBOXES", "payload": {"index": 0, "isFirst": true, "isLast": false, "text": "Feature A"} }, { "uuid": "q3-cb2", "type": "CHECKBOX", "groupUuid": "group-q3", "groupType": "CHECKBOXES", "payload": {"index": 1, "isFirst": false, "isLast": true, "text": "Feature B"} }
{ "uuid": "q4-title", "type": "TITLE", "groupUuid": "group-q4", "groupType": "QUESTION", "payload": { "safeHTMLSchema": [["How would you rate our service?", [["tag", "span"]]]] } }, { "uuid": "q4-opt1", "type": "MULTIPLE_CHOICE_OPTION", "groupUuid": "group-q4", "groupType": "MULTIPLE_CHOICE", "payload": {"isRequired": true, "index": 0, "isFirst": true, "isLast": false, "text": "โญ Poor"} }, { "uuid": "q4-opt2", "type": "MULTIPLE_CHOICE_OPTION", "groupUuid": "group-q4", "groupType": "MULTIPLE_CHOICE", "payload": {"isRequired": true, "index": 1, "isFirst": false, "isLast": false, "text": "โญโญ Fair"} }, { "uuid": "q4-opt3", "type": "MULTIPLE_CHOICE_OPTION", "groupUuid": "group-q4", "groupType": "MULTIPLE_CHOICE", "payload": {"isRequired": true, "index": 2, "isFirst": false, "isLast": false, "text": "โญโญโญ Good"} }, { "uuid": "q4-opt4", "type": "MULTIPLE_CHOICE_OPTION", "groupUuid": "group-q4", "groupType": "MULTIPLE_CHOICE", "payload": {"isRequired": true, "index": 3, "isFirst": false, "isLast": false, "text": "โญโญโญโญ Very good"} }, { "uuid": "q4-opt5", "type": "MULTIPLE_CHOICE_OPTION", "groupUuid": "group-q4", "groupType": "MULTIPLE_CHOICE", "payload": {"isRequired": true, "index": 4, "isFirst": false, "isLast": true, "text": "โญโญโญโญโญ Excellent"} }
TALLY_KEY=$(cat ~/.config/tally/api_key) # Backup first curl -s "https://api.tally.so/forms/{ID}" \ -H "Authorization: Bearer $TALLY_KEY" > /tmp/backup.json # Update curl -s "https://api.tally.so/forms/{ID}" \ -X PATCH \ -H "Authorization: Bearer $TALLY_KEY" \ -H "Content-Type: application/json" \ -d @/tmp/form.json # Verify curl -s "https://api.tally.so/forms/{ID}" \ -H "Authorization: Bearer $TALLY_KEY" | jq '.blocks | length'
Always backup before modifying a form Use descriptive UUIDs (q1-title, q1-input, sec1-head) Section titles: Use lowercase with emoji prefix (๐ General feedback) For ratings: Use MULTIPLE_CHOICE with โญ emojis instead of RATING type Verify after update: Check block count matches expected
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.