Potential out of the box solutions:
3. I would like to prevent the user running the survey twice -- but the only things i have to play with are the "id" and "campaign_id" in the querystring and, I suppose, cookies.
- Insert the campaign_id into the survey in a hidden text field, manually delete duplicates later?
- Set cookie to prevent duplicates in publication and access settings?
- Tokenise the survey, automatically generate as many tokens as needed and assign them to people in the CRM, perhaps by their CRM id as the token?
4. Then, when the response is submitted, I want to fire a webhook that passes me the id & campaign id. (Kinda working, with ZestPlugin - but not sure how to tell it to send me those two variables").
- Create a custom page on Zoho or a standalone php script perhaps, that you set limesurvey to automatically redirect to upon completion e.g.
mywebsite.com/custom_pages/complete?id={...aign_id={SIDXGIDXQID
} then use this page to update the CRM. Not sure what zest is, but may be able to use this method to pass the variables.
6. I want to push these values (First Name, Last Name) back into the Survey in LimeSurvey, so they show up in the response detail
When you send the participant to limesurvey, you can fill values via the URL. Create some hidden questions in a group at the start of the survey, seperate to the rest. Then mydomain.com/index.php/933555?123456X123X123=First%20Name&123456X123X123=Last%20Name
It may concern the user to see their name passed in a URL like this, if you really need this in your data then consider pulling it in via a Vlookup in excel after you finish the survey.