โ† All skills
Tencent SkillHub ยท Developer Tools

Limesurvey Openclaw Skill

Automate LimeSurvey operations via RemoteControl 2 API. Use when: (1) managing surveys, questions, groups, or participants, (2) exporting responses or statis...

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Automate LimeSurvey operations via RemoteControl 2 API. Use when: (1) managing surveys, questions, groups, or participants, (2) exporting responses or statis...

โฌ‡ 0 downloads โ˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
README.md, SKILL.md, references/api_reference.md, references/examples.md, scripts/limesurvey.py, scripts/limesurvey_client.py

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.2.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 20 sections Open source page

LimeSurvey RemoteControl 2 API

Automate LimeSurvey survey management via the RemoteControl 2 JSON-RPC API.

Prerequisites

Required Environment Variables: LIMESURVEY_URL โ€” Full URL to RemoteControl endpoint (e.g., https://survey.example.com/index.php/admin/remotecontrol) LIMESURVEY_USER โ€” Service account username LIMESURVEY_PASSWORD โ€” Service account password Security Recommendations: Use a least-privilege service account, not your full admin credentials Create a dedicated LimeSurvey user with minimal required permissions (survey management only, no system administration) Use a strong, unique password; rotate periodically after initial use Never commit credentials to version control โ€” use environment variables or secure vaults only Verify the RemoteControl API is accessible only from trusted networks Setup: export LIMESURVEY_URL='https://survey.example.com/index.php/admin/remotecontrol' export LIMESURVEY_USER='service_account_username' export LIMESURVEY_PASSWORD='secure_service_password'

Setup

Set environment variables: export LIMESURVEY_URL='https://survey.example.com/index.php/admin/remotecontrol' export LIMESURVEY_USER='admin' export LIMESURVEY_PASSWORD='your_password'

CLI Usage

# List all surveys python3 scripts/limesurvey.py list-surveys # Export responses python3 scripts/limesurvey.py export-responses 123456 --format csv -o responses.csv # List participants python3 scripts/limesurvey.py list-participants 123456 --limit 100 # Add participants from JSON python3 scripts/limesurvey.py add-participants 123456 --file participants.json # Send invitations python3 scripts/limesurvey.py invite-participants 123456 # Activate survey python3 scripts/limesurvey.py activate-survey 123456 # Get survey statistics python3 scripts/limesurvey.py get-summary 123456

Python API Usage

from scripts.limesurvey_client import LimeSurveySession url = 'https://survey.example.com/index.php/admin/remotecontrol' with LimeSurveySession(url, 'admin', 'password') as client: # List surveys surveys = client.call('list_surveys', client.session_key) # Export responses encoded = client.call('export_responses', client.session_key, survey_id, 'csv') csv_data = client.decode_base64(encoded)

Survey Management

List all surveys: surveys = client.call('list_surveys', client.session_key) Activate a survey: result = client.call('activate_survey', client.session_key, survey_id) Get survey statistics: stats = client.call('get_summary', client.session_key, survey_id, 'all') # Returns: completed_responses, incomplete_responses, token_count, etc. Copy a survey: result = client.call('copy_survey', client.session_key, source_id, "New Survey Name") new_id = result['newsid']

Participant Management

Initialize participant table: # Create table with custom attributes client.call('activate_tokens', client.session_key, survey_id, [1, 2, 3]) Add participants: participants = [ {"email": "user@example.com", "firstname": "John", "lastname": "Doe"}, {"email": "user2@example.com", "firstname": "Jane", "lastname": "Smith"} ] result = client.call('add_participants', client.session_key, survey_id, participants, True) Send invitations: # Send to specific tokens token_ids = [1, 2, 3] result = client.call('invite_participants', client.session_key, survey_id, token_ids) # Or send to all pending result = client.call('invite_participants', client.session_key, survey_id, None) List participants with filters: # Find unused tokens participants = client.call('list_participants', client.session_key, survey_id, 0, 100, True) # Find by custom attribute participants = client.call('list_participants', client.session_key, survey_id, 0, 1000, False, False, {'attribute_1': 'ACME Corp'})

Response Operations

Export all responses: encoded = client.call('export_responses', client.session_key, survey_id, 'csv') csv_data = client.decode_base64(encoded) with open('responses.csv', 'w') as f: f.write(csv_data) Export only completed responses: encoded = client.call('export_responses', client.session_key, survey_id, 'csv', None, 'complete') Export by token: encoded = client.call('export_responses_by_token', client.session_key, survey_id, 'json', ['token1', 'token2']) Add a response programmatically: response_data = { 'G1Q1': 'Answer text', 'G1Q2': '3', # Multiple choice value 'token': 'xyz123' } response_id = client.call('add_response', client.session_key, survey_id, response_data)

Question & Group Operations

List groups: groups = client.call('list_groups', client.session_key, survey_id) Add a question group: group_id = client.call('add_group', client.session_key, survey_id, 'Demographics', 'Basic information') List questions: # All questions in survey questions = client.call('list_questions', client.session_key, survey_id) # Questions in specific group questions = client.call('list_questions', client.session_key, survey_id, group_id) Get question details: props = client.call('get_question_properties', client.session_key, question_id, ['question', 'type', 'mandatory'])

Export & Reporting

Generate statistics PDF: encoded = client.call('export_statistics', client.session_key, survey_id, 'pdf', None, '1') # With graphs import base64 pdf_data = base64.b64decode(encoded) with open('stats.pdf', 'wb') as f: f.write(pdf_data) Get submission timeline: timeline = client.call('export_timeline', client.session_key, survey_id, 'day', '2024-01-01', '2024-12-31') for entry in timeline: print(f"{entry['period']}: {entry['count']} submissions") Get survey fieldmap: fieldmap = client.call('get_fieldmap', client.session_key, survey_id) # Maps question codes to metadata

Error Handling

All API functions return status objects on error: result = client.call('activate_survey', client.session_key, survey_id) if isinstance(result, dict) and 'status' in result: print(f"Error: {result['status']}") # Common errors: # - Invalid session key # - No permission # - Invalid survey ID # - Survey already active else: print("Success!") Use try/except for connection errors: from scripts.limesurvey_client import LimeSurveyError try: with LimeSurveySession(url, username, password) as client: result = client.call('list_surveys', client.session_key) except LimeSurveyError as e: print(f"API error: {e}")

Reference Documentation

API Reference - Complete function reference with parameters and return values Examples - Practical code examples for common tasks

Session

get_session_key(username, password) - Create session release_session_key(session_key) - Close session

Surveys

list_surveys(session_key) - List all surveys get_survey_properties(session_key, survey_id, properties) - Get properties set_survey_properties(session_key, survey_id, properties) - Update properties activate_survey(session_key, survey_id) - Activate survey delete_survey(session_key, survey_id) - Delete survey copy_survey(session_key, source_id, new_name) - Duplicate survey import_survey(session_key, data, type) - Import from file get_summary(session_key, survey_id, stat) - Get statistics

Participants

activate_tokens(session_key, survey_id, attributes) - Initialize table list_participants(session_key, survey_id, start, limit, unused, attributes, conditions) - List participants add_participants(session_key, survey_id, data, create_token) - Add participants delete_participants(session_key, survey_id, token_ids) - Delete participants get_participant_properties(session_key, survey_id, query, properties) - Get properties set_participant_properties(session_key, survey_id, query, properties) - Update properties invite_participants(session_key, survey_id, token_ids) - Send invitations remind_participants(session_key, survey_id, token_ids) - Send reminders

Responses

export_responses(session_key, survey_id, format, ...) - Export responses export_responses_by_token(session_key, survey_id, format, tokens) - Export by token add_response(session_key, survey_id, data) - Add response update_response(session_key, survey_id, data) - Update response delete_response(session_key, survey_id, response_id) - Delete response get_response_ids(session_key, survey_id, token) - Find response IDs

Questions & Groups

list_groups(session_key, survey_id) - List groups add_group(session_key, survey_id, title, description) - Create group delete_group(session_key, survey_id, group_id) - Delete group get_group_properties(session_key, group_id, properties) - Get properties set_group_properties(session_key, group_id, properties) - Update properties list_questions(session_key, survey_id, group_id) - List questions get_question_properties(session_key, question_id, properties) - Get properties set_question_properties(session_key, question_id, properties) - Update properties import_question(session_key, survey_id, group_id, data, type) - Import question delete_question(session_key, question_id) - Delete question

Export & Reporting

export_statistics(session_key, survey_id, doc_type, language, graph) - Export statistics export_timeline(session_key, survey_id, type, start, end) - Submission timeline get_fieldmap(session_key, survey_id) - Get question codes

Notes

Session management: Always close sessions with release_session_key or use LimeSurveySession context manager Base64 encoding: Export functions return base64-encoded data โ€” use client.decode_base64() or base64.b64decode() Permissions: API calls respect user permissions โ€” same as logging into admin interface Rate limiting: LimeSurvey has brute-force protection on authentication JSON-RPC: Content-Type must be application/json (handled automatically by client)

Full API Documentation

Official LimeSurvey API: https://api.limesurvey.org/classes/remotecontrol-handle.html Manual: https://www.limesurvey.org/manual/RemoteControl_2_API

Category context

Code helpers, APIs, CLIs, browser automation, testing, and developer operations.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
4 Docs2 Scripts
  • SKILL.md Primary doc
  • README.md Docs
  • references/api_reference.md Docs
  • references/examples.md Docs
  • scripts/limesurvey_client.py Scripts
  • scripts/limesurvey.py Scripts