import { createId } from "@paralleldrive/cuid2";
import { TActionClass } from "@formbricks/types/action-classes";
import {
  TSurveyCTAQuestion,
  TSurveyCreateInput,
  TSurveyDisplayOption,
  TSurveyEndScreenCard,
  TSurveyHiddenFields,
  TSurveyLanguage,
  TSurveyOpenTextQuestion,
  TSurveyQuestionTypeEnum,
  TSurveyStatus,
  TSurveyType,
  TSurveyWelcomeCard,
} from "@formbricks/types/surveys/types";
import { TTemplate } from "@formbricks/types/templates";
import { createI18nString, extractLanguageCodes } from "./i18n/utils";

export const getDefaultEndingCard = (languages: TSurveyLanguage[]): TSurveyEndScreenCard => {
  const languageCodes = extractLanguageCodes(languages);
  return {
    id: createId(),
    type: "endScreen",
    headline: createI18nString("Thank you!", languageCodes),
    subheader: createI18nString("We appreciate your feedback.", languageCodes),
    buttonLabel: createI18nString("Create your own Survey", languageCodes),
    buttonLink: "https://formbricks.com/signup",
  };
};

const hiddenFieldsDefault: TSurveyHiddenFields = {
  enabled: true,
  fieldIds: [],
};

export const welcomeCardDefault: TSurveyWelcomeCard = {
  enabled: false,
  headline: { default: "Welcome!" },
  html: { default: "Thanks for providing your feedback - let's go!" },
  timeToFinish: false,
  showResponseCount: false,
};

const surveyDefault: TTemplate["preset"] = {
  name: "New Survey",
  welcomeCard: welcomeCardDefault,
  endings: [getDefaultEndingCard([])],
  hiddenFields: hiddenFieldsDefault,
  questions: [],
};

export const templates: TTemplate[] = [
  {
    name: "Cart Abandonment Survey",
    role: "productManager",
    industries: ["eCommerce"],
    channels: ["app", "website", "link"],
    description: "Understand the reasons behind cart abandonment in your web shop.",
    preset: {
      ...surveyDefault,
      name: "Cart Abandonment Survey",
      questions: [
        {
          id: createId(),
          html: {
            default:
              '<p class="fb-editor-paragraph" dir="ltr"><span>We noticed you left some items in your cart. We would love to understand why.</span></p>',
          },
          type: TSurveyQuestionTypeEnum.CTA,
          logic: [{ condition: "skipped", destination: surveyDefault.endings[0].id }],
          headline: { default: "Do you have 2 minutes to help us improve?" },
          required: false,
          buttonLabel: { default: "Sure!" },
          buttonExternal: false,
          dismissButtonLabel: { default: "No, thanks." },
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "What was the primary reason you didn't complete your purchase?" },
          subheader: { default: "Please select one of the following options:" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "High shipping costs" },
            },
            {
              id: createId(),
              label: { default: "Found a better price elsewhere" },
            },
            {
              id: createId(),
              label: { default: "Just browsing" },
            },
            {
              id: createId(),
              label: { default: "Decided not to buy" },
            },
            {
              id: createId(),
              label: { default: "Payment issues" },
            },
            { id: "other", label: { default: "Other" } },
          ],
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: {
            default: "Please elaborate on your reason for not completing the purchase:",
          },
          required: false,
          inputType: "text",
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          headline: { default: "How would you rate your overall shopping experience?" },
          required: true,
          scale: "number",
          range: 5,
          lowerLabel: { default: "Very dissatisfied" },
          upperLabel: { default: "Very satisfied" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceMulti,
          headline: {
            default: "What factors would encourage you to complete your purchase in the future?",
          },
          subheader: { default: "Please select all that apply:" },
          required: true,
          choices: [
            {
              id: createId(),
              label: { default: "Lower shipping costs" },
            },
            {
              id: createId(),
              label: { default: "Discounts or promotions" },
            },
            {
              id: createId(),
              label: { default: "More payment options" },
            },
            {
              id: createId(),
              label: { default: "Better product descriptions" },
            },
            {
              id: createId(),
              label: { default: "Improved website navigation" },
            },
            { id: "other", label: { default: "Other" } },
          ],
        },
        {
          id: createId(),
          logic: [{ condition: "skipped", destination: "bxvvhol84ir34q2vsvr5kwl9" }],
          type: TSurveyQuestionTypeEnum.Consent,
          headline: { default: "Would you like to receive a discount code via email?" },
          required: false,
          label: { default: "Yes, please reach out." },
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Please share your email address:" },
          required: true,
          inputType: "email",
          longAnswer: false,
          placeholder: { default: "example@email.com" },
        },
        {
          id: "bxvvhol84ir34q2vsvr5kwl9",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Any additional comments or suggestions?" },
          required: false,
          inputType: "text",
        },
      ],
    },
  },
  {
    name: "Site Abandonment Survey",
    role: "productManager",
    industries: ["eCommerce"],
    channels: ["app", "website"],
    description: "Understand the reasons behind site abandonment in your web shop.",
    preset: {
      ...surveyDefault,
      name: "Site Abandonment Survey",
      questions: [
        {
          id: createId(),
          html: {
            default:
              "<p class='fb-editor-paragraph' dir='ltr'><span>We noticed you're  leaving our site without making a purchase. We would love to understand why.</span></p>",
          },
          type: TSurveyQuestionTypeEnum.CTA,
          logic: [{ condition: "skipped", destination: surveyDefault.endings[0].id }],
          headline: { default: "Do you have a minute?" },
          required: false,
          buttonLabel: { default: "Sure!" },
          buttonExternal: false,
          dismissButtonLabel: { default: "No, thanks." },
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "What's the primary reason you're leaving our site?" },
          subheader: { default: "Please select one of the following options:" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Can't find what I am looking for" },
            },
            {
              id: createId(),
              label: { default: "Site is too slow" },
            },
            {
              id: createId(),
              label: { default: "Technical issues" },
            },
            {
              id: createId(),
              label: { default: "Just browsing" },
            },
            {
              id: createId(),
              label: { default: "Found a better site" },
            },
            { id: "other", label: { default: "Other" } },
          ],
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: {
            default: "Please elaborate on your reason for leaving the site:",
          },
          required: false,
          inputType: "text",
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          headline: { default: "How would you rate your overall experience on our site?" },
          required: true,
          scale: "number",
          range: 5,
          lowerLabel: { default: "Very dissatisfied" },
          upperLabel: { default: "Very satisfied" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceMulti,
          headline: {
            default: "What improvements would encourage you to stay longer on our site?",
          },
          subheader: { default: "Please select all that apply:" },
          required: true,
          choices: [
            {
              id: createId(),
              label: { default: "Faster loading times" },
            },
            {
              id: createId(),
              label: { default: "Better product search functionality" },
            },
            {
              id: createId(),
              label: { default: "More product variety" },
            },
            {
              id: createId(),
              label: { default: "Improved site design" },
            },
            {
              id: createId(),
              label: { default: "More customer reviews" },
            },
            { id: "other", label: { default: "Other" } },
          ],
        },
        {
          id: createId(),
          logic: [{ condition: "skipped", destination: "bxvvhol84ir34q2vsvr5kwl9" }],
          type: TSurveyQuestionTypeEnum.Consent,
          headline: { default: "Would you like to receive updates about new products and promotions?" },
          required: false,
          label: { default: "Yes, please reach out." },
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Please share your email address:" },
          required: true,
          inputType: "email",
          longAnswer: false,
          placeholder: { default: "example@email.com" },
        },
        {
          id: "bxvvhol84ir34q2vsvr5kwl9",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Any additional comments or suggestions?" },
          required: false,
          inputType: "text",
        },
      ],
    },
  },
  {
    name: "Product Market Fit (Superhuman)",
    role: "productManager",
    industries: ["saas"],
    channels: ["app", "link"],
    description: "Measure PMF by assessing how disappointed users would be if your product disappeared.",
    preset: {
      ...surveyDefault,
      name: "Product Market Fit (Superhuman)",
      questions: [
        {
          id: createId(),
          html: {
            default:
              '<p class="fb-editor-paragraph" dir="ltr"><span>We would love to understand your user experience better. Sharing your insight helps a lot.</span></p>',
          },
          type: TSurveyQuestionTypeEnum.CTA,
          logic: [{ condition: "skipped", destination: surveyDefault.endings[0].id }],
          headline: { default: "You are one of our power users! Do you have 5 minutes?" },
          required: false,
          buttonLabel: { default: "Happy to help!" },
          buttonExternal: false,
          dismissButtonLabel: { default: "No, thanks." },
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "How disappointed would you be if you could no longer use {{productName}}?" },
          subheader: { default: "Please select one of the following options:" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Not at all disappointed" },
            },
            {
              id: createId(),
              label: { default: "Somewhat disappointed" },
            },
            {
              id: createId(),
              label: { default: "Very disappointed" },
            },
          ],
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "What is your role?" },
          subheader: { default: "Please select one of the following options:" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Founder" },
            },
            {
              id: createId(),
              label: { default: "Executive" },
            },
            {
              id: createId(),
              label: { default: "Product Manager" },
            },
            {
              id: createId(),
              label: { default: "Product Owner" },
            },
            {
              id: createId(),
              label: { default: "Software Engineer" },
            },
          ],
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "What type of people do you think would most benefit from {{productName}}?" },
          required: true,
          inputType: "text",
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "What is the main benefit you receive from {{productName}}?" },
          required: true,
          inputType: "text",
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "How can we improve {{productName}} for you?" },
          subheader: { default: "Please be as specific as possible." },
          required: true,
          inputType: "text",
        },
      ],
    },
  },
  {
    name: "Onboarding Segmentation",
    role: "productManager",
    industries: ["saas"],
    channels: ["app", "link"],
    description: "Learn more about who signed up to your product and why.",
    preset: {
      ...surveyDefault,
      name: "Onboarding Segmentation",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "What is your role?" },
          subheader: { default: "Please select one of the following options:" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Founder" },
            },
            {
              id: createId(),
              label: { default: "Executive" },
            },
            {
              id: createId(),
              label: { default: "Product Manager" },
            },
            {
              id: createId(),
              label: { default: "Product Owner" },
            },
            {
              id: createId(),
              label: { default: "Software Engineer" },
            },
          ],
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "What's your company size?" },
          subheader: { default: "Please select one of the following options:" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "only me" },
            },
            {
              id: createId(),
              label: { default: "1-5 employees" },
            },
            {
              id: createId(),
              label: { default: "6-10 employees" },
            },
            {
              id: createId(),
              label: { default: "11-100 employees" },
            },
            {
              id: createId(),
              label: { default: "over 100 employees" },
            },
          ],
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "How did you hear about us first?" },
          subheader: { default: "Please select one of the following options:" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Recommendation" },
            },
            {
              id: createId(),
              label: { default: "Social Media" },
            },
            {
              id: createId(),
              label: { default: "Ads" },
            },
            {
              id: createId(),
              label: { default: "Google Search" },
            },
            {
              id: createId(),
              label: { default: "In a Podcast" },
            },
          ],
        },
      ],
    },
  },
  {
    name: "Churn Survey",
    role: "sales",
    industries: ["saas", "eCommerce", "other"],
    channels: ["app", "link"],
    description: "Find out why people cancel their subscriptions. These insights are pure gold!",
    preset: {
      ...surveyDefault,
      name: "Churn Survey",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          shuffleOption: "none",
          logic: [
            { value: "Difficult to use", condition: "equals", destination: "sxwpskjgzzpmkgfxzi15inif" },
            { value: "It's too expensive", condition: "equals", destination: "mao94214zoo6c1at5rpuz7io" },
            { value: "I am missing features", condition: "equals", destination: "l054desub14syoie7n202vq4" },
            { value: "Poor customer service", condition: "equals", destination: "hdftsos1odzjllr7flj4m3j9" },
            {
              value: "I just didn't need it anymore",
              condition: "equals",
              destination: surveyDefault.endings[0].id,
            },
          ],
          choices: [
            { id: createId(), label: { default: "Difficult to use" } },
            { id: createId(), label: { default: "It's too expensive" } },
            { id: createId(), label: { default: "I am missing features" } },
            { id: createId(), label: { default: "Poor customer service" } },
            { id: createId(), label: { default: "I just didn't need it anymore" } },
          ],
          headline: { default: "Why did you cancel your subscription?" },
          required: true,
          subheader: { default: "We're sorry to see you leave. Help us do better:" },
        },
        {
          id: "sxwpskjgzzpmkgfxzi15inif",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "What would have made {{productName}} easier to use?" },
          required: true,
          buttonLabel: { default: "Send" },
          inputType: "text",
        },
        {
          id: "mao94214zoo6c1at5rpuz7io",
          html: {
            default:
              '<p class="fb-editor-paragraph" dir="ltr"><span>We\'d love to keep you as a customer. Happy to offer a 30% discount for the next year.</span></p>',
          },
          type: TSurveyQuestionTypeEnum.CTA,
          logic: [{ condition: "clicked", destination: surveyDefault.endings[0].id }],
          headline: { default: "Get 30% off for the next year!" },
          required: true,
          buttonUrl: "https://formbricks.com",
          buttonLabel: { default: "Get 30% off" },
          buttonExternal: true,
          dismissButtonLabel: { default: "Skip" },
        },
        {
          id: "l054desub14syoie7n202vq4",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "What features are you missing?" },
          required: true,
          inputType: "text",
        },
        {
          id: "hdftsos1odzjllr7flj4m3j9",
          html: {
            default:
              '<p class="fb-editor-paragraph" dir="ltr"><span>We aim to provide the best possible customer service. Please email our CEO and she will personally handle your issue.</span></p>',
          },
          type: TSurveyQuestionTypeEnum.CTA,
          logic: [{ condition: "clicked", destination: surveyDefault.endings[0].id }],
          headline: { default: "So sorry to hear 😔 Talk to our CEO directly!" },
          required: true,
          buttonUrl: "mailto:ceo@company.com",
          buttonLabel: { default: "Send email to CEO" },
          buttonExternal: true,
          dismissButtonLabel: { default: "Skip" },
        },
      ],
    },
  },
  {
    name: "Earned Advocacy Score (EAS)",
    role: "customerSuccess",
    industries: ["saas", "eCommerce", "other"],
    channels: ["app", "link"],
    description:
      "The EAS is a riff off the NPS but asking for actual past behaviour instead of lofty intentions.",
    preset: {
      ...surveyDefault,
      name: "Earned Advocacy Score (EAS)",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          logic: [{ value: "No", condition: "equals", destination: "duz2qp8eftix9wty1l221x1h" }],
          shuffleOption: "none",
          choices: [
            { id: createId(), label: { default: "Yes" } },
            { id: createId(), label: { default: "No" } },
          ],
          headline: { default: "Have you actively recommended {{productName}} to others?" },
          required: true,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: "yhfew1j3ng6luy7t7qynwj79" }],
          headline: { default: "Great to hear! Why did you recommend us?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "duz2qp8eftix9wty1l221x1h",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "So sad. Why not?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "yhfew1j3ng6luy7t7qynwj79",
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          logic: [{ value: "No", condition: "equals", destination: surveyDefault.endings[0].id }],
          shuffleOption: "none",
          choices: [
            { id: createId(), label: { default: "Yes" } },
            { id: createId(), label: { default: "No" } },
          ],
          headline: { default: "Have you actively discouraged others from choosing {{productName}}?" },
          required: true,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "What made you discourage them?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },
  {
    name: "Improve Trial Conversion",
    role: "sales",
    industries: ["saas"],
    channels: ["link", "app"],
    description: "Find out why people stopped their trial. These insights help you improve your funnel.",
    preset: {
      ...surveyDefault,
      name: "Improve Trial Conversion",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          shuffleOption: "none",
          logic: [
            {
              value: "I didn't get much value out of it",
              condition: "equals",
              destination: "aew2ymg51mffnt9db7duz9t3",
            },
            {
              value: "I expected something else",
              condition: "equals",
              destination: "rnrfydttavtsf2t2nfx1df7m",
            },
            {
              value: "It's too expensive for what it does",
              condition: "equals",
              destination: "x760wga1fhtr1i80cpssr7af",
            },
            {
              value: "I am missing a feature",
              condition: "equals",
              destination: "rbhww1pix03r6sl4xc511wqg",
            },
            {
              value: "I was just looking around",
              condition: "equals",
              destination: surveyDefault.endings[0].id,
            },
          ],
          choices: [
            { id: createId(), label: { default: "I didn't get much value out of it" } },
            { id: createId(), label: { default: "I expected something else" } },
            { id: createId(), label: { default: "It's too expensive for what it does" } },
            { id: createId(), label: { default: "I am missing a feature" } },
            { id: createId(), label: { default: "I was just looking around" } },
          ],
          headline: { default: "Why did you stop your trial?" },
          required: true,
          subheader: { default: "Help us understand you better:" },
        },
        {
          id: "aew2ymg51mffnt9db7duz9t3",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: "bqiyml1ym74ggx6htwdo7rlu" }],
          headline: { default: "Sorry to hear. What was the biggest problem using {{productName}}?" },
          required: true,
          buttonLabel: { default: "Next" },
          inputType: "text",
        },
        {
          id: "rnrfydttavtsf2t2nfx1df7m",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: "bqiyml1ym74ggx6htwdo7rlu" }],
          headline: { default: "What did you expect {{productName}} would do for you?" },
          required: true,
          buttonLabel: { default: "Next" },
          inputType: "text",
        },
        {
          id: "x760wga1fhtr1i80cpssr7af",
          html: {
            default:
              '<p class="fb-editor-paragraph" dir="ltr"><span>We\'re happy to offer you a 20% discount on a yearly plan.</span></p>',
          },
          type: TSurveyQuestionTypeEnum.CTA,
          logic: [{ condition: "clicked", destination: surveyDefault.endings[0].id }],
          headline: { default: "Sorry to hear! Get 20% off the first year." },
          required: true,
          buttonUrl: "https://formbricks.com/github",
          buttonLabel: { default: "Get 20% off" },
          buttonExternal: true,
          dismissButtonLabel: { default: "Skip" },
        },
        {
          id: "rbhww1pix03r6sl4xc511wqg",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: "bqiyml1ym74ggx6htwdo7rlu" }],
          headline: { default: "Which features are you missing?" },
          required: true,
          subheader: { default: "What would you like to achieve?" },
          buttonLabel: { default: "Next" },
          inputType: "text",
        },
        {
          id: "bqiyml1ym74ggx6htwdo7rlu",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [
            { condition: "submitted", destination: surveyDefault.endings[0].id },
            { condition: "skipped", destination: surveyDefault.endings[0].id },
          ],
          headline: { default: "How are you solving your problem now?" },
          required: false,
          subheader: { default: "Please name alternative solutions:" },
          inputType: "text",
        },
      ],
    },
  },
  {
    name: "Review Prompt",
    role: "marketing",
    industries: ["saas", "eCommerce", "other"],
    channels: ["link", "app"],
    description: "Invite users who love your product to review it publicly.",
    preset: {
      ...surveyDefault,
      name: "Review Prompt",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [{ value: 3, condition: "lessEqual", destination: "tk9wpw2gxgb8fa6pbpp3qq5l" }],
          range: 5,
          scale: "star",
          headline: { default: "How do you like {{productName}}?" },
          required: true,
          lowerLabel: { default: "Not good" },
          upperLabel: { default: "Very satisfied" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          html: { default: '<p class="fb-editor-paragraph" dir="ltr"><span>This helps us a lot.</span></p>' },
          type: TSurveyQuestionTypeEnum.CTA,
          logic: [{ condition: "clicked", destination: surveyDefault.endings[0].id }],
          headline: { default: "Happy to hear 🙏 Please write a review for us!" },
          required: true,
          buttonUrl: "https://formbricks.com/github",
          buttonLabel: { default: "Write review" },
          buttonExternal: true,
        },
        {
          id: "tk9wpw2gxgb8fa6pbpp3qq5l",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Sorry to hear! What is ONE thing we can do better?" },
          required: true,
          subheader: { default: "Help us improve your experience." },
          buttonLabel: { default: "Send" },
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },
  {
    name: "Interview Prompt",
    role: "productManager",
    industries: ["saas"],
    channels: ["app"],
    description: "Invite a specific subset of your users to schedule an interview with your product team.",
    preset: {
      ...surveyDefault,
      name: "Interview Prompt",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.CTA,
          headline: { default: "Do you have 15 min to talk to us? 🙏" },
          html: { default: "You're one of our power users. We would love to interview you briefly!" },
          buttonLabel: { default: "Book slot" },
          buttonUrl: "https://cal.com/johannes",
          buttonExternal: true,
          required: false,
        },
      ],
    },
  },
  {
    name: "Improve Activation Rate",
    role: "productManager",
    industries: ["saas"],
    channels: ["link"],
    description: "Identify weaknesses in your onboarding flow to increase user activation.",
    preset: {
      ...surveyDefault,
      name: "Onboarding Drop-Off Reasons",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          shuffleOption: "none",
          logic: [
            {
              value: "Difficult to set up or use",
              condition: "equals",
              destination: "r0zvi3vburf4hm7qewimzjux",
            },
            {
              value: "Lacked features/functionality",
              condition: "equals",
              destination: "rbwz3y6y9avzqcfj30nu0qj4",
            },
            {
              value: "Just haven't had the time",
              condition: "equals",
              destination: "gn6298zogd2ipdz7js17qy5i",
            },
            {
              value: "Something else",
              condition: "equals",
              destination: "c0exdyri3erugrv0ezkyseh6",
            },
          ],
          choices: [
            { id: createId(), label: { default: "Didn't seem useful to me" } },
            { id: createId(), label: { default: "Difficult to set up or use" } },
            { id: createId(), label: { default: "Lacked features/functionality" } },
            { id: createId(), label: { default: "Just haven't had the time" } },
            { id: createId(), label: { default: "Something else" } },
          ],
          headline: {
            default: "What's the main reason why you haven't finished setting up {{productName}}?",
          },
          required: true,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "What made you think {{productName}} wouldn't be useful?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "r0zvi3vburf4hm7qewimzjux",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "What was difficult about setting up or using {{productName}}?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "rbwz3y6y9avzqcfj30nu0qj4",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "What features or functionality were missing?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "gn6298zogd2ipdz7js17qy5i",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "How could we make it easier for you to get started?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "c0exdyri3erugrv0ezkyseh6",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [],
          headline: { default: "What was it? Please explain:" },
          required: false,
          subheader: { default: "We're eager to fix it asap." },
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },
  {
    name: "Uncover Strengths & Weaknesses",
    role: "productManager",
    industries: ["saas", "other"],
    channels: ["app", "link"],
    description: "Find out what users like and don't like about your product or offering.",
    preset: {
      ...surveyDefault,
      name: "Uncover Strengths & Weaknesses",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          shuffleOption: "none",
          choices: [
            { id: createId(), label: { default: "Ease of use" } },
            { id: createId(), label: { default: "Good value for money" } },
            { id: createId(), label: { default: "It's open-source" } },
            { id: createId(), label: { default: "The founders are cute" } },
            { id: "other", label: { default: "Other" } },
          ],
          headline: { default: "What do you value most about {{productName}}?" },
          required: true,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          shuffleOption: "none",
          choices: [
            { id: createId(), label: { default: "Documentation" } },
            { id: createId(), label: { default: "Customizability" } },
            { id: createId(), label: { default: "Pricing" } },
            { id: "other", label: { default: "Other" } },
          ],
          headline: { default: "What should we improve on?" },
          required: true,
          subheader: { default: "Please select one of the following options:" },
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Would you like to add something?" },
          required: false,
          subheader: { default: "Feel free to speak your mind, we do too." },
          inputType: "text",
        },
      ],
    },
  },
  {
    name: "Product Market Fit Survey (Short)",
    role: "productManager",
    industries: ["saas"],
    channels: ["app", "link"],
    description: "Measure PMF by assessing how disappointed users would be if your product disappeared.",
    preset: {
      ...surveyDefault,
      name: "Product Market Fit Survey (Short)",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "How disappointed would you be if you could no longer use {{productName}}?" },
          subheader: { default: "Please select one of the following options:" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Not at all disappointed" },
            },
            {
              id: createId(),
              label: { default: "Somewhat disappointed" },
            },
            {
              id: createId(),
              label: { default: "Very disappointed" },
            },
          ],
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "How can we improve {{productName}} for you?" },
          subheader: { default: "Please be as specific as possible." },
          required: true,
          inputType: "text",
        },
      ],
    },
  },
  {
    name: "Marketing Attribution",
    role: "marketing",
    industries: ["saas", "eCommerce"],
    channels: ["website", "app", "link"],
    description: "How did you first hear about us?",
    preset: {
      ...surveyDefault,
      name: "Marketing Attribution",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "How did you hear about us first?" },
          subheader: { default: "Please select one of the following options:" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Recommendation" },
            },
            {
              id: createId(),
              label: { default: "Social Media" },
            },
            {
              id: createId(),
              label: { default: "Ads" },
            },
            {
              id: createId(),
              label: { default: "Google Search" },
            },
            {
              id: createId(),
              label: { default: "In a Podcast" },
            },
          ],
        },
      ],
    },
  },
  {
    name: "Changing Subscription Experience",
    role: "productManager",
    industries: ["saas"],
    channels: ["app"],
    description: "Find out what goes through peoples minds when changing their subscriptions.",
    preset: {
      ...surveyDefault,
      name: "Changing subscription experience",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "How easy was it to change your plan?" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Extremely difficult" },
            },
            {
              id: createId(),
              label: { default: "It took a while, but I got it" },
            },
            {
              id: createId(),
              label: { default: "It was alright" },
            },
            {
              id: createId(),
              label: { default: "Quite easy" },
            },
            {
              id: createId(),
              label: { default: "Very easy, love it!" },
            },
          ],
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "Is the pricing information easy to understand?" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Yes, very clear." },
            },
            {
              id: createId(),
              label: { default: "I was confused at first, but found what I needed." },
            },
            {
              id: createId(),
              label: { default: "Quite complicated." },
            },
          ],
        },
      ],
    },
  },

  {
    name: "Identify Customer Goals",
    role: "productManager",
    industries: ["saas", "other"],
    channels: ["app", "website"],
    description:
      "Better understand if your messaging creates the right expectations of the value your product provides.",
    preset: {
      ...surveyDefault,
      name: "Identify Customer Goals",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "What's your primary goal for using {{productName}}?" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Understand my user base deeply" },
            },
            {
              id: createId(),
              label: { default: "Identify upselling opportunities" },
            },
            {
              id: createId(),
              label: { default: "Build the best possible product" },
            },
            {
              id: createId(),
              label: { default: "Rule the world to make everyone breakfast brussels sprouts." },
            },
          ],
        },
      ],
    },
  },

  {
    name: "Feature Chaser",
    role: "productManager",
    industries: ["saas"],
    channels: ["app"],
    description: "Follow up with users who just used a specific feature.",
    preset: {
      ...surveyDefault,
      name: "Feature Chaser",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          range: 5,
          scale: "number",
          headline: { default: "How important is [ADD FEATURE] for you?" },
          required: true,
          lowerLabel: { default: "Not important" },
          upperLabel: { default: "Very important" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          shuffleOption: "none",
          choices: [
            { id: createId(), label: { default: "Aspect 1" } },
            { id: createId(), label: { default: "Aspect 2" } },
            { id: createId(), label: { default: "Aspect 3" } },
            { id: createId(), label: { default: "Aspect 4" } },
          ],
          headline: { default: "Which aspect is most important?" },
          required: true,
        },
      ],
    },
  },

  {
    name: "Fake Door Follow-Up",
    role: "productManager",
    industries: ["saas", "eCommerce"],
    channels: ["app", "website"],
    description: "Follow up with users who ran into one of your Fake Door experiments.",
    preset: {
      ...surveyDefault,
      name: "Fake Door Follow-Up",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          headline: { default: "How important is this feature for you?" },
          required: true,
          lowerLabel: { default: "Not important" },
          upperLabel: { default: "Very important" },
          range: 5,
          scale: "number",
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceMulti,
          headline: { default: "What should be definitely include building this?" },
          required: false,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Aspect 1" },
            },
            {
              id: createId(),
              label: { default: "Aspect 2" },
            },
            {
              id: createId(),
              label: { default: "Aspect 3" },
            },
            {
              id: createId(),
              label: { default: "Aspect 4" },
            },
          ],
        },
      ],
    },
  },

  {
    name: "Feedback Box",
    role: "productManager",
    industries: ["saas"],
    channels: ["app"],
    description: "Give your users the chance to seamlessly share what's on their minds.",
    preset: {
      ...surveyDefault,
      name: "Feedback Box",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          shuffleOption: "none",
          logic: [
            { value: "Bug report 🐞", condition: "equals", destination: "dnbiuq4l33l7jypcf2cg6vhh" },
            { value: "Feature Request 💡", condition: "equals", destination: "en9nuuevbf7g9oa9rzcs1l50" },
          ],
          choices: [
            { id: createId(), label: { default: "Bug report 🐞" } },
            { id: createId(), label: { default: "Feature Request 💡" } },
          ],
          headline: { default: "What's on your mind, boss?" },
          required: true,
          subheader: { default: "Thanks for sharing. We'll get back to you asap." },
        },
        {
          id: "dnbiuq4l33l7jypcf2cg6vhh",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: "a6c76m5oocw6xp9agf3d2tam" }],
          headline: { default: "What's broken?" },
          required: true,
          subheader: { default: "The more detail, the better :)" },
          inputType: "text",
        },
        {
          id: "a6c76m5oocw6xp9agf3d2tam",
          html: {
            default:
              '<p class="fb-editor-paragraph" dir="ltr"><span>We will fix this as soon as possible. Do you want to be notified when we did?</span></p>',
          },
          type: TSurveyQuestionTypeEnum.CTA,
          logic: [
            { condition: "clicked", destination: surveyDefault.endings[0].id },
            { condition: "skipped", destination: surveyDefault.endings[0].id },
          ],
          headline: { default: "Want to stay in the loop?" },
          required: false,
          buttonLabel: { default: "Yes, notify me" },
          buttonExternal: false,
          dismissButtonLabel: { default: "No, thanks" },
        },
        {
          id: "en9nuuevbf7g9oa9rzcs1l50",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Lovely, tell us more!" },
          required: true,
          subheader: { default: "What problem do you want us to solve?" },
          buttonLabel: { default: "Request feature" },
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Integration Setup Survey",
    role: "productManager",
    industries: ["saas"],
    channels: ["app"],
    description: "Evaluate how easily users can add integrations to your product. Find blind spots.",
    preset: {
      ...surveyDefault,
      name: "Integration Usage Survey",
      questions: [
        {
          id: "s6ss6znzxdwjod1hv16fow4w",
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [{ value: 4, condition: "greaterEqual", destination: "ef0qo3l8iisd517ikp078u1p" }],
          range: 5,
          scale: "number",
          headline: { default: "How easy was it to set this integration up?" },
          required: true,
          lowerLabel: { default: "Not easy" },
          upperLabel: { default: "Very easy" },
          isColorCodingEnabled: false,
        },
        {
          id: "mko13ptjj6tpi5u2pl7a5drz",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Why was it hard?" },
          required: false,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "ef0qo3l8iisd517ikp078u1p",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "What other tools would you like to use with {{productName}}?" },
          required: false,
          subheader: { default: "We keep building integrations, yours can be next:" },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "New Integration Survey",
    role: "productManager",
    industries: ["saas"],
    channels: ["app"],
    description: "Find out which integrations your users would like to see next.",
    preset: {
      ...surveyDefault,
      name: "New Integration Survey",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "Which other tools are you using?" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "PostHog" },
            },
            {
              id: createId(),
              label: { default: "Segment" },
            },
            {
              id: createId(),
              label: { default: "Hubspot" },
            },
            {
              id: createId(),
              label: { default: "Twilio" },
            },
            {
              id: "other",
              label: { default: "Other" },
            },
          ],
        },
      ],
    },
  },

  {
    name: "Docs Feedback",
    role: "productManager",
    industries: ["saas"],
    channels: ["app", "website", "link"],
    description: "Measure how clear each page of your developer documentation is.",
    preset: {
      ...surveyDefault,
      name: "{{productName}} Docs Feedback",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "Was this page helpful?" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Yes 👍" },
            },
            {
              id: createId(),
              label: { default: "No 👎" },
            },
          ],
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Please elaborate:" },
          required: false,
          inputType: "text",
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Page URL" },
          required: false,
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Net Promoter Score (NPS)",

    role: "customerSuccess",
    industries: ["saas", "eCommerce", "other"],
    channels: ["app", "link", "website"],
    description: "Measure the Net Promoter Score of your product or service.",
    preset: {
      ...surveyDefault,
      name: "NPS Survey",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.NPS,
          headline: { default: "How likely are you to recommend {{productName}} to a friend or colleague?" },
          required: false,
          lowerLabel: { default: "Not likely" },
          upperLabel: { default: "Very likely" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "What made you give that rating?" },
          required: false,
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Customer Satisfaction Score (CSAT)",
    role: "customerSuccess",
    industries: ["saas", "eCommerce", "other"],
    channels: ["app", "link", "website"],
    description: "Measure the Customer Satisfaction Score of your product or service.",
    preset: {
      ...surveyDefault,
      name: "{{productName}} CSAT",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [{ value: 3, condition: "lessEqual", destination: "vyo4mkw4ln95ts4ya7qp2tth" }],
          range: 5,
          scale: "smiley",
          headline: { default: "How satisfied are you with your {{productName}} experience?" },
          required: true,
          lowerLabel: { default: "Not satisfied" },
          upperLabel: { default: "Very satisfied" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "Lovely! Is there anything we can do to improve your experience?" },
          required: false,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "vyo4mkw4ln95ts4ya7qp2tth",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Ugh, sorry! Is there anything we can do to improve your experience?" },
          required: false,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Collect Feedback",
    role: "productManager",
    industries: ["other", "eCommerce"],
    channels: ["website", "link"],
    description: "Gather comprehensive feedback on your product or service.",
    preset: {
      ...surveyDefault,
      name: "Feedback Survey",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [{ value: "3", condition: "lessEqual", destination: "dlpa0371pe7rphmggy2sgbap" }],
          range: 5,
          scale: "star",
          headline: { default: "How do you rate your overall experience?" },
          required: true,
          subheader: { default: "Don't worry, be honest." },
          lowerLabel: { default: "Not good" },
          upperLabel: { default: "Very good" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: "gwo0fq5kug13e83fcour4n1w" }],
          headline: { default: "Lovely! What did you like about it?" },
          required: true,
          longAnswer: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "dlpa0371pe7rphmggy2sgbap",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Thanks for sharing! What did you not like?" },
          required: true,
          longAnswer: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "gwo0fq5kug13e83fcour4n1w",
          type: TSurveyQuestionTypeEnum.Rating,
          range: 5,
          scale: "smiley",
          headline: { default: "How do you rate our communication?" },
          required: true,
          lowerLabel: { default: "Not good" },
          upperLabel: { default: "Very good" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Anything else you'd like to share with our team?" },
          required: false,
          longAnswer: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "sjbaghd1bi59pkjun2c97kw9",
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          logic: [],
          choices: [
            { id: createId(), label: { default: "Google" } },
            { id: createId(), label: { default: "Social Media" } },
            { id: createId(), label: { default: "Friends" } },
            { id: createId(), label: { default: "Podcast" } },
            { id: "other", label: { default: "Other" } },
          ],
          headline: { default: "How did you hear about us?" },
          required: true,
          shuffleOption: "none",
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Lastly, we'd love to respond to your feedback. Please share your email:" },
          required: false,
          inputType: "email",
          longAnswer: false,
          placeholder: { default: "example@email.com" },
        },
      ],
    },
  },

  {
    name: "Identify Upsell Opportunities",
    role: "sales",
    industries: ["saas"],
    channels: ["app", "link"],
    description: "Find out how much time your product saves your user. Use it to upsell.",
    preset: {
      ...surveyDefault,
      name: "Identify upsell opportunities",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "How many hours does your team save per week by using {{productName}}?" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Less than 1 hour" },
            },
            {
              id: createId(),
              label: { default: "1 to 2 hours" },
            },
            {
              id: createId(),
              label: { default: "3 to 5 hours" },
            },
            {
              id: createId(),
              label: { default: "5+ hours" },
            },
          ],
        },
      ],
    },
  },

  {
    name: "Prioritize Features",
    role: "productManager",
    industries: ["saas"],
    channels: ["app"],
    description: "Identify features your users need most and least.",
    preset: {
      ...surveyDefault,
      name: "Feature Prioritization",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          logic: [],
          shuffleOption: "none",
          choices: [
            { id: createId(), label: { default: "Feature 1" } },
            { id: createId(), label: { default: "Feature 2" } },
            { id: createId(), label: { default: "Feature 3" } },
            { id: "other", label: { default: "Other" } },
          ],
          headline: { default: "Which of these features would be MOST valuable to you?" },
          required: true,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          logic: [],
          shuffleOption: "none",
          choices: [
            { id: createId(), label: { default: "Feature 1" } },
            { id: createId(), label: { default: "Feature 2" } },
            { id: createId(), label: { default: "Feature 3" } },
          ],
          headline: { default: "Which of these features would be LEAST valuable to you?" },
          required: true,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "How else could we improve you experience with {{productName}}?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Gauge Feature Satisfaction",
    role: "productManager",
    industries: ["saas"],
    channels: ["app"],
    description: "Evaluate the satisfaction of specific features of your product.",
    preset: {
      ...surveyDefault,
      name: "Gauge Feature Satisfaction",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          headline: { default: "How easy was it to achieve ... ?" },
          required: true,
          lowerLabel: { default: "Not easy" },
          upperLabel: { default: "Very easy" },
          scale: "number",
          range: 5,
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "What is one thing we could do better?" },
          required: false,
          inputType: "text",
        },
      ],
      endings: [getDefaultEndingCard([])],
      hiddenFields: hiddenFieldsDefault,
    },
  },

  {
    name: "Marketing Site Clarity",
    role: "marketing",
    industries: ["saas", "eCommerce", "other"],
    channels: ["website"],
    description: "Identify users dropping off your marketing site. Improve your messaging.",
    preset: {
      ...surveyDefault,
      name: "Marketing Site Clarity",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          headline: { default: "Do you have all the info you need to give {{productName}} a try?" },
          required: true,
          shuffleOption: "none",
          choices: [
            {
              id: createId(),
              label: { default: "Yes, totally" },
            },
            {
              id: createId(),
              label: { default: "Kind of..." },
            },
            {
              id: createId(),
              label: { default: "No, not at all" },
            },
          ],
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "What’s missing or unclear to you about {{productName}}?" },
          required: false,
          inputType: "text",
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.CTA,
          headline: { default: "Thanks for your answer! Get 25% off your first 6 months:" },
          required: false,
          buttonLabel: { default: "Get discount" },
          buttonUrl: "https://app.formbricks.com/auth/signup",
          buttonExternal: true,
        },
      ],
    },
  },

  {
    name: "Customer Effort Score (CES)",
    role: "productManager",
    industries: ["saas"],
    channels: ["app"],
    description: "Determine how easy it is to use a feature.",
    preset: {
      ...surveyDefault,
      name: "Customer Effort Score (CES)",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          range: 5,
          scale: "number",
          headline: { default: "{{productName}} makes it easy for me to [ADD GOAL]" },
          required: true,
          lowerLabel: { default: "Disagree strongly" },
          upperLabel: { default: "Agree strongly" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Thanks! How could we make it easier for you to [ADD GOAL]?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Rate Checkout Experience",
    role: "productManager",
    industries: ["eCommerce"],
    channels: ["website", "app"],
    description: "Let customers rate the checkout experience to tweak conversion.",
    preset: {
      ...surveyDefault,
      name: "Rate Checkout Experience",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [{ value: 4, condition: "greaterEqual", destination: "lpof3d9t9hmnqvyjlpksmxd7" }],
          range: 5,
          scale: "number",
          headline: { default: "How easy or difficult was it to complete the checkout?" },
          required: true,
          lowerLabel: { default: "Very difficult" },
          upperLabel: { default: "Very easy" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "Sorry about that! What would have made it easier for you?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "lpof3d9t9hmnqvyjlpksmxd7",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Lovely! Is there anything we can do to improve your experience?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Measure Search Experience",
    role: "productManager",
    industries: ["saas", "eCommerce"],
    channels: ["app", "website"],
    description: "Measure how relevant your search results are.",
    preset: {
      ...surveyDefault,
      name: "Measure Search Experience",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [{ value: 4, condition: "greaterEqual", destination: "adcs3d9t9hmnqvyjlpksmxd7" }],
          range: 5,
          scale: "number",
          headline: { default: "How relevant are these search results?" },
          required: true,
          lowerLabel: { default: "Not at all relevant" },
          upperLabel: { default: "Very relevant" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "Ugh! What makes the results irrelevant for you?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "adcs3d9t9hmnqvyjlpksmxd7",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Lovely! Is there anything we can do to improve your experience?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Evaluate Content Quality",
    role: "marketing",
    industries: ["other"],
    channels: ["website"],
    description: "Measure if your content marketing pieces hit right.",
    preset: {
      ...surveyDefault,
      name: "Evaluate Content Quality",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [{ value: 4, condition: "greaterEqual", destination: "adcs3d9t9hmnqvyjlpkswi38" }],
          range: 5,
          scale: "number",
          headline: { default: "How well did this article address what you were hoping to learn?" },
          required: true,
          lowerLabel: { default: "Not at all well" },
          upperLabel: { default: "Extremely well" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "Hmpft! What were you hoping for?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "adcs3d9t9hmnqvyjlpkswi38",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Lovely! Is there anything else you would like us to cover?" },
          required: true,
          placeholder: { default: "Topics, trends, tutorials..." },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Measure Task Accomplishment",
    role: "productManager",
    industries: ["saas"],
    channels: ["app", "website"],
    description: "See if people get their 'Job To Be Done' done. Successful people are better customers.",
    preset: {
      ...surveyDefault,
      name: "Measure Task Accomplishment",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          shuffleOption: "none",
          logic: [
            { value: "Working on it, boss", condition: "equals", destination: "nq88udm0jjtylr16ax87xlyc" },
            { value: "Yes", condition: "equals", destination: "rjeac33gd13h3nnbrbid1fb2" },
            { value: "No", condition: "equals", destination: "u83zhr66knyfozccoqojx7bc" },
          ],
          choices: [
            { id: createId(), label: { default: "Yes" } },
            { id: createId(), label: { default: "Working on it, boss" } },
            { id: createId(), label: { default: "No" } },
          ],
          headline: { default: "Were you able to accomplish what you came here to do today?" },
          required: true,
        },
        {
          id: "rjeac33gd13h3nnbrbid1fb2",
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [{ value: 4, condition: "greaterEqual", destination: "nq88udm0jjtylr16ax87xlyc" }],
          range: 5,
          scale: "number",
          headline: { default: "How easy was it to achieve your goal?" },
          required: true,
          lowerLabel: { default: "Very difficult" },
          upperLabel: { default: "Very easy" },
          isColorCodingEnabled: false,
        },
        {
          id: "s0999bhpaz8vgf7ps264piek",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [
            { condition: "submitted", destination: surveyDefault.endings[0].id },
            { condition: "skipped", destination: surveyDefault.endings[0].id },
          ],
          headline: { default: "What made it hard?" },
          required: false,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "nq88udm0jjtylr16ax87xlyc",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [
            { condition: "skipped", destination: surveyDefault.endings[0].id },
            { condition: "submitted", destination: surveyDefault.endings[0].id },
          ],
          headline: { default: "Great! What did you come here to do today?" },
          required: false,
          buttonLabel: { default: "Send" },
          inputType: "text",
        },
        {
          id: "u83zhr66knyfozccoqojx7bc",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "What stopped you?" },
          required: true,
          buttonLabel: { default: "Send" },
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Identify Sign Up Barriers",
    role: "marketing",
    industries: ["saas", "eCommerce", "other"],
    channels: ["website"],
    description: "Offer a discount to gather insights about sign up barriers.",
    preset: {
      ...surveyDefault,
      name: "{{productName}} Sign Up Barriers",
      questions: [
        {
          id: createId(),
          html: {
            default:
              '<p class="fb-editor-paragraph" dir="ltr"><span>You seem to be considering signing up. Answer four questions and get 10% on any plan.</span></p>',
          },
          type: TSurveyQuestionTypeEnum.CTA,
          logic: [{ condition: "skipped", destination: surveyDefault.endings[0].id }],
          headline: { default: "Answer this short survey, get 10% off!" },
          required: false,
          buttonLabel: { default: "Get 10% discount" },
          buttonExternal: false,
          dismissButtonLabel: { default: "No, thanks" },
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [{ value: "5", condition: "equals", destination: surveyDefault.endings[0].id }],
          range: 5,
          scale: "number",
          headline: { default: "How likely are you to sign up for {{productName}}?" },
          required: true,
          lowerLabel: { default: "Not at all likely" },
          upperLabel: { default: "Very likely" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          shuffleOption: "none",
          logic: [
            {
              value: "May not have what I'm looking for",
              condition: "equals",
              destination: "atiw0j1oykb77zr0b7q4tixu",
            },
            {
              value: "Still comparing options",
              condition: "equals",
              destination: "j7jkpolm5xl7u0zt3g0e4z7d",
            },
            { value: "Seems complicated", condition: "equals", destination: "t5gvag2d7kq311szz5iyiy79" },
            { value: "Pricing is a concern", condition: "equals", destination: "or0yhhrof753sq9ug4mdavgz" },
            { value: "Something else", condition: "equals", destination: "v0pq1qcnm6ohiry5ywcd91qq" },
          ],
          choices: [
            { id: createId(), label: { default: "May not have what I'm looking for" } },
            { id: createId(), label: { default: "Still comparing options" } },
            { id: createId(), label: { default: "Seems complicated" } },
            { id: createId(), label: { default: "Pricing is a concern" } },
            { id: createId(), label: { default: "Something else" } },
          ],
          headline: { default: "What is holding you back from trying {{productName}}?" },
          required: true,
        },
        {
          id: "atiw0j1oykb77zr0b7q4tixu",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: "k3q0vt1ko0bzbsq076p7lnys" }],
          headline: { default: "What do you need but {{productName}} does not offer?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "j7jkpolm5xl7u0zt3g0e4z7d",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: "k3q0vt1ko0bzbsq076p7lnys" }],
          headline: { default: "What options are you looking at?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "t5gvag2d7kq311szz5iyiy79",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: "k3q0vt1ko0bzbsq076p7lnys" }],
          headline: { default: "What seems complicated to you?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "or0yhhrof753sq9ug4mdavgz",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: "k3q0vt1ko0bzbsq076p7lnys" }],
          headline: { default: "What are you concerned about regarding pricing?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "v0pq1qcnm6ohiry5ywcd91qq",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Please explain:" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "k3q0vt1ko0bzbsq076p7lnys",
          html: {
            default:
              '<p class="fb-editor-paragraph" dir="ltr"><span>Thanks a lot for taking the time to share feedback 🙏</span></p>',
          },
          type: TSurveyQuestionTypeEnum.CTA,
          headline: { default: "Thanks! Here is your code: SIGNUPNOW10" },
          required: false,
          buttonUrl: "https://app.formbricks.com/auth/signup",
          buttonLabel: { default: "Sign Up" },
          buttonExternal: true,
          dismissButtonLabel: { default: "Skip for now" },
        },
      ],
    },
  },

  {
    name: "Build Product Roadmap",
    role: "productManager",
    industries: ["saas"],
    channels: ["app", "link"],
    description: "Identify the ONE thing your users want the most and build it.",
    preset: {
      ...surveyDefault,
      name: "{{productName}} Roadmap Input",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          range: 5,
          scale: "number",
          headline: {
            default: "How satisfied are you with the features and functionality of {{productName}}?",
          },
          required: true,
          lowerLabel: { default: "Not at all satisfied" },
          upperLabel: { default: "Extremely satisfied" },
          isColorCodingEnabled: false,
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: {
            default: "What's ONE change we could make to improve your {{productName}} experience most?",
          },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Understand Purchase Intention",
    role: "sales",
    industries: ["eCommerce"],
    channels: ["website", "link", "app"],
    description: "Find out how close your visitors are to buy or subscribe.",
    preset: {
      ...surveyDefault,
      name: "Purchase Intention Survey",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [
            { value: "2", condition: "lessEqual", destination: "y19mwcmstlc7pi7s4izxk1ll" },
            { value: "3", condition: "equals", destination: "zm1hs8qkeuidh3qm0hx8pnw7" },
            { value: "4", condition: "equals", destination: "zm1hs8qkeuidh3qm0hx8pnw7" },
            { value: "5", condition: "equals", destination: surveyDefault.endings[0].id },
          ],
          range: 5,
          scale: "number",
          headline: { default: "How likely are you to shop from us today?" },
          required: true,
          lowerLabel: { default: "Not at all likely" },
          upperLabel: { default: "Extremely likely" },
          isColorCodingEnabled: false,
        },
        {
          id: "y19mwcmstlc7pi7s4izxk1ll",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [
            { condition: "submitted", destination: surveyDefault.endings[0].id },
            { condition: "skipped", destination: surveyDefault.endings[0].id },
          ],
          headline: { default: "Got it. What's your primary reason for visiting today?" },
          required: false,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "zm1hs8qkeuidh3qm0hx8pnw7",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "What, if anything, is holding you back from making a purchase today?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Improve Newsletter Content",
    role: "marketing",
    industries: ["eCommerce", "saas", "other"],
    channels: ["link"],
    description: "Find out how your subscribers like your newsletter content.",
    preset: {
      ...surveyDefault,
      name: "Improve Newsletter Content",
      questions: [
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [
            { value: "5", condition: "equals", destination: "l2q1chqssong8n0xwaagyl8g" },
            { value: "5", condition: "lessThan", destination: "k3s6gm5ivkc5crpycdbpzkpa" },
          ],
          range: 5,
          scale: "smiley",
          headline: { default: "How would you rate this weeks newsletter?" },
          required: true,
          lowerLabel: { default: "Meh" },
          upperLabel: { default: "Great" },
          isColorCodingEnabled: false,
        },
        {
          id: "k3s6gm5ivkc5crpycdbpzkpa",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [
            { condition: "submitted", destination: surveyDefault.endings[0].id },
            { condition: "skipped", destination: surveyDefault.endings[0].id },
          ],
          headline: { default: "What would have made this weeks newsletter more helpful?" },
          required: false,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "l2q1chqssong8n0xwaagyl8g",
          html: {
            default:
              '<p class="fb-editor-paragraph" dir="ltr"><span>Who thinks like you? You\'d do us a huge favor if you\'d share this weeks episode with your brain friend!</span></p>',
          },
          type: TSurveyQuestionTypeEnum.CTA,
          headline: { default: "Thanks! ❤️ Spread the love with ONE friend." },
          required: false,
          buttonUrl: "https://formbricks.com",
          buttonLabel: { default: "Happy to help!" },
          buttonExternal: true,
          dismissButtonLabel: { default: "Find your own friends" },
        },
      ],
    },
  },

  {
    name: "Evaluate a Product Idea",
    role: "productManager",
    industries: ["saas", "other"],
    channels: ["link", "app"],
    description: "Survey users about product or feature ideas. Get feedback rapidly.",
    preset: {
      ...surveyDefault,
      name: "Evaluate a Product Idea",
      questions: [
        {
          id: createId(),
          html: {
            default:
              '<p class="fb-editor-paragraph" dir="ltr"><span>We respect your time and kept it short 🤸</span></p>',
          },
          type: TSurveyQuestionTypeEnum.CTA,
          headline: {
            default:
              "We love how you use {{productName}}! We'd love to pick your brain on a feature idea. Got a minute?",
          },
          required: true,
          buttonLabel: { default: "Let's do it!" },
          buttonExternal: false,
          dismissButtonLabel: { default: "Skip" },
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [
            { value: "3", condition: "lessEqual", destination: "ndacjg9lqf5jcpq9w8ote666" },
            { value: "4", condition: "greaterEqual", destination: "jmzgbo73cfjswlvhoynn7o0q" },
          ],
          range: 5,
          scale: "number",
          headline: { default: "Thanks! How difficult or easy is it for you to [PROBLEM AREA] today?" },
          required: true,
          lowerLabel: { default: "Very difficult" },
          upperLabel: { default: "Very easy" },
          isColorCodingEnabled: false,
        },

        {
          id: "ndacjg9lqf5jcpq9w8ote666",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "What's most difficult for you when it comes to [PROBLEM AREA]?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "jmzgbo73cfjswlvhoynn7o0q",
          html: {
            default:
              '<p class="fb-editor-paragraph"><br></p><p class="fb-editor-paragraph" dir="ltr"><b><strong class="fb-editor-text-bold">Read the text below, then answer 2 questions:</strong></b></p><p class="fb-editor-paragraph"><br></p><p class="fb-editor-paragraph" dir="ltr"><span>Insert concept brief here. Add neccessary details but keep it concise and easy to understand.</span></p>',
          },
          type: TSurveyQuestionTypeEnum.CTA,
          headline: { default: "We're working on an idea to help with [PROBLEM AREA]." },
          required: true,
          buttonLabel: { default: "Next" },
          buttonExternal: false,
          dismissButtonLabel: { default: "Skip" },
        },
        {
          id: createId(),
          type: TSurveyQuestionTypeEnum.Rating,
          logic: [
            { value: "3", condition: "lessEqual", destination: "mmiuun3z4e7gk4ufuwh8lq8q" },
            { value: "4", condition: "greaterEqual", destination: "gvzevzw4hkqd6dmlkcly6kd1" },
          ],
          range: 5,
          scale: "number",
          headline: { default: "How valuable would this feature be to you?" },
          required: true,
          lowerLabel: { default: "Not valuable" },
          upperLabel: { default: "Very valuable" },
          isColorCodingEnabled: false,
        },
        {
          id: "mmiuun3z4e7gk4ufuwh8lq8q",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: "bqmnpyku9etsgbtb322luzb2" }],
          headline: { default: "Got it. Why wouldn't this feature be valuable to you?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "gvzevzw4hkqd6dmlkcly6kd1",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Got it. What would be most valuable to you in this feature?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "bqmnpyku9etsgbtb322luzb2",
          type: TSurveyQuestionTypeEnum.OpenText,
          headline: { default: "Anything else we should keep in mind?" },
          required: false,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },

  {
    name: "Understand Low Engagement",
    role: "productManager",
    industries: ["saas"],
    channels: ["link"],
    description: "Identify reasons for low engagement to improve user adoption.",
    preset: {
      ...surveyDefault,
      name: "Reasons for Low Engagement",
      questions: [
        {
          id: "aq9dafe9nxe0kpm67b1os2z9",
          type: TSurveyQuestionTypeEnum.MultipleChoiceSingle,
          shuffleOption: "none",
          logic: [
            { value: "Difficult to use", condition: "equals", destination: "r0zvi3vburf4hm7qewimzjux" },
            {
              value: "Found a better alternative",
              condition: "equals",
              destination: "g92s5wetp51ps6afmc6y7609",
            },
            {
              value: "Just haven't had the time",
              condition: "equals",
              destination: "gn6298zogd2ipdz7js17qy5i",
            },
            {
              value: "Lacked features I need",
              condition: "equals",
              destination: "rbwz3y6y9avzqcfj30nu0qj4",
            },
            { value: "Other", condition: "equals", destination: "c0exdyri3erugrv0ezkyseh6" },
          ],
          choices: [
            { id: "xoqb0wjjsk4t0lx0i7jrhx26", label: { default: "Difficult to use" } },
            { id: "p768nlw47ndehtgzx6m82dr6", label: { default: "Found a better alternative" } },
            { id: "izt28ma5ep3s92531owxj1vg", label: { default: "Just haven't had the time" } },
            { id: "dhkp2wb9e1tv7kfu8csjhzbh", label: { default: "Lacked features I need" } },
            { id: "other", label: { default: "Other" } },
          ],
          headline: { default: "What's the main reason you haven't been back to {{productName}} recently?" },
          required: true,
        },
        {
          id: "r0zvi3vburf4hm7qewimzjux",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "What's difficult about using {{productName}}?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "g92s5wetp51ps6afmc6y7609",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "Got it. Which alternative are you using instead?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "gn6298zogd2ipdz7js17qy5i",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "Got it. How could we make it easier for you to get started?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "rbwz3y6y9avzqcfj30nu0qj4",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [{ condition: "submitted", destination: surveyDefault.endings[0].id }],
          headline: { default: "Got it. What features or functionality were missing?" },
          required: true,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
        {
          id: "c0exdyri3erugrv0ezkyseh6",
          type: TSurveyQuestionTypeEnum.OpenText,
          logic: [],
          headline: { default: "Please add more details:" },
          required: false,
          placeholder: { default: "Type your answer here..." },
          inputType: "text",
        },
      ],
    },
  },
];

export const customSurvey = {
  name: "Start from scratch",
  description: "Create a survey without template.",
  preset: {
    ...surveyDefault,
    name: "New Survey",
    questions: [
      {
        id: createId(),
        type: TSurveyQuestionTypeEnum.OpenText,
        headline: { default: "What would you like to know?" },
        subheader: { default: "This is an example survey." },
        placeholder: { default: "Type your answer here..." },
        required: true,
        inputType: "text",
      } as TSurveyOpenTextQuestion,
    ],
  },
};

export const getExampleWebsiteSurveyTemplate = (
  webAppUrl: string,
  trigger: TActionClass
): TSurveyCreateInput => ({
  ...customSurvey.preset,
  questions: customSurvey.preset.questions.map(
    (question) =>
      ({
        ...question,
        type: TSurveyQuestionTypeEnum.CTA,
        headline: { default: "Website successfully connected 🎉" },
        html: {
          default: "You're all set up. Create your own survey for website visitors 👇",
        },
        buttonLabel: { default: "Let's do it!" },
        buttonExternal: true,
        imageUrl: `${webAppUrl}/onboarding/meme.png`,
      }) as TSurveyCTAQuestion
  ),
  name: "Example website survey",
  type: "website" as TSurveyType,
  autoComplete: 2,
  triggers: [{ actionClass: trigger }],
  status: "inProgress" as TSurveyStatus,
  displayOption: "respondMultiple" as TSurveyDisplayOption,
  recontactDays: 0,
  isVerifyEmailEnabled: false,
});

export const getExampleAppSurveyTemplate = (
  webAppUrl: string,
  trigger: TActionClass
): TSurveyCreateInput => ({
  ...customSurvey.preset,
  questions: customSurvey.preset.questions.map(
    (question) =>
      ({
        ...question,
        type: TSurveyQuestionTypeEnum.CTA,
        headline: { default: "App successfully connected 🥳" },
        html: {
          default: "You're all set up. Create your own survey for your app users 👇",
        },
        buttonLabel: { default: "Let's do it!" },
        buttonExternal: true,
        imageUrl: `${webAppUrl}/onboarding/meme.png`,
      }) as TSurveyCTAQuestion
  ),
  name: "Example app survey",
  type: "app" as TSurveyType,
  autoComplete: 2,
  triggers: [{ actionClass: trigger }],
  status: "inProgress" as TSurveyStatus,
  displayOption: "respondMultiple" as TSurveyDisplayOption,
  recontactDays: 0,
  isVerifyEmailEnabled: false,
});
