Export a survey to other platforms

This notebook shows how to create a survey in EDSL and export it to other survey platforms such as LimeSurvey, Google Forms, Qualtrics and SurveyMonkey. This can be useful for combining survey responses from AI agents and humans.

In the steps below we create a survey to sign up for updates from Expected Parrot and export it to LimeSurvey, an open-source platform for (human) surveys.

Note: This feature is launching soon! Please sign up for updates by following the link to the survey that we create below. Thank you!

Step 1: Create questions

EDSL comes with a variety of Question types. See examples of all question types here. We start by importing the ones that we want to use and creating questions in the relevant templates:

[1]:
from edsl.questions import (
    QuestionFreeText,
    QuestionMultipleChoice,
    QuestionYesNo,
    QuestionLinearScale,
)

q_firstname = QuestionFreeText(
    question_name="first_name", question_text="What is your first name?"
)

q_lastname = QuestionFreeText(
    question_name="last_name", question_text="What is your last name?"
)

q_email = QuestionFreeText(
    question_name="email", question_text="What is your email address?"
)

q_announcements = QuestionYesNo(
    question_name="announcements",
    question_text="May we add you to our email announcements list?",
)

q_alpha_testing = QuestionYesNo(
    question_name="alpha_testing",
    question_text="Are you interested in alpha testing new features?",
)

q_use = QuestionFreeText(
    question_name="use_case",
    question_text="If you're willing to share, we'd love to hear what you're using EDSL for!",
)

q_started = QuestionFreeText(
    question_name="started",
    question_text="If you have any questions or comments about your experience so far, please let us know!",
)

Step 2: Construct a survey

Next we add our questions to a Survey. Ours is straightforward, but see examples of ways to add conditional logic such as skip/stop rules to your survey here.

[2]:
from edsl import Survey

survey = Survey(
    questions=[
        q_firstname,
        q_lastname,
        q_email,
        q_announcements,
        q_alpha_testing,
        q_use,
        q_started,
    ]
)

Step 3: Export the survey

When our survey is ready we can export it to other survey platforms by calling the web method and specifying the destination platform. Here we export our survey to LimeSurvey and get the URL to share with non-AI audiences:

[3]:
signup_survey = survey.web(platform="lime_survey")

Show the new URL for the survey:

[4]:
signup_survey.json()["data"]["url"]
[4]:
'https://survey.expectedparrot.com/index.php/132345'

Thanks for reading! Please let us know if you have any questions or feedback, and check out our docs for details on getting started using EDSL.