Vulnerability in EPiServer.Forms
I noticed you have a silverpop addon and that's something I need to use in one of my projects. My issue is that I can't find enough information to actually use it properly.
So here's my scenario. I want to create an episerver form and hook it up to a contacts list in epi server. I have done all the setup , i have an episerver site talking to a silverpop instance.
Let's say I have a user registration form. I want to map the fields on that form to a silverpop contacts list and make sure that when an acccount is created in episerver, a contact is created in silverpop too. I only found 2 links so far none of which contains the information I need :
What I actually need is something like this drupal/silverpop tutorial :
http://www.mediacurrent.com/blog/introducing-silverpop-drupal-module specifically the bit about webforms / lead integration
Any ideas ?
Unfortunately public documentation on how to use the Silverpop Engage plugin is a bit scant, but I can help you with setup. Let me know where you're stuck on with the setup and I help to guide you further. Which version of the package are you using?
Creating a user in Silverpop in one of the main features built into the add-on. The idea is that an editor creates a form in a specific form folder that is connected to Silverpop, create a bunch of fields where each field correlates to a field in Silverpop and when the form is submitted, the data is sent to Silverpop. However, this data is then stored in EPiServer and no EPiServer user is created to match this. There is an API to work against the Silverpop web services but most parts of this is mainly intended for internal usage withing the add-on.
My question is:
Do you need to create the form in code for some reason? If so, you need to call the correct methods in our API to save the user data to Silverpop.
If not, I suggest that you use the regular form approach and add event handlers to EPiServer and create the EPiServer user when the form is submitted.
No, I don't need to create the form in code.
I found the bits I needed so I configured a form, hooked it up to a Contacts Database, mapped 2 fields for now, one to Name, another to Email. I can see the integration working because the contacts database name was picked up corectly form the silverpop instance, so that part is definitely corect.
I could see the form post doing something, but no data arrived in my contacts database.
I then hooked up into the form submission so I could see the result was failed.
I turned logging on with a level of all so I could see what's going and I picked up on this line : Cancel sending event message as the EventProviderService doesn't have any configured providers.
I can provide the log as well if that will help. There are no errors anywhere and I am having trouble pinpointing the exact issue.
Any help would be appreciated :)
I am using EpiServer 7.5, and the Silverpop Addon version 22.214.171.12414
The error message you are showing does not originate from the Silverpop add-on. A question: When you created the form to test with, did you check the check box "Same person can send the form several times"? If not, it might be that the form is preventing the post and depending on your template implemenation. you might not see this message.
If this is not the case, can you check the network traffic to see that data is sent to Silverpop when you post the form? Please note that Silverpop will update your current contact if you post if you are already connected to Silverpop through a cookie, so you will not get a new contact if that's what you are looking for.
ok, more information here now.
I've selected the contacts list the form is posting to ( this is done on the properties of the submit button )
after submission I can see the post failed and the log says :
2014-11-06 10:35:22,881\t(null)\tCommitting Transaction
2014-11-06 10:35:22,882\t(null)\tClosing Connection2014-11-06 10:35:22,882\t(null)\tCache the OAUTH TOKEN till 11/06/2014 14:30:212014-11-06 10:35:23,396\t(null)\tRecipient not found or is not a member of the list. - 128.2014-11-06 10:35:23,397\t(null)\tThe resultFactory return null object.
the contacts list is completely empty so looking for an existing recipient is obviously going to fail. Is there a fag that needs to be setup somewhere to tell the system to create a new record in that list ?
it's a bit confusing and the fact that there is not enough information on silverpop either doesn't really help at all.
So the Contacts database can have its own data. On the submit button of the form you have a number of options including none or automatic. I would have expected the data to go to the main database if none is selected, but that doesn't seem to happen.
In silverpop the Contacts List seems to be a sub set of the main contacts database ( thats how I understand it so far anyway )
The official documentation is here:
The help web addresses was just changed a week or two back due to a major restructuring of the content so if you have an old link, please tell us the source for this so that we can update it.
According to this documentation, the options for the submit button works as this:
If the above explanaition does not solve your problem, I got the following hints from our development team:
1. Go to admin mode, clear the Oauth token cache and try again. 2. Do you run the site in IE9? 3. Do you use a non public domain, like a local domain or a intranet server name?
Silverpop has issues with number two and three. This is something that we have reported to Silverpop and that we hope that they will address soon as we've had issues with several customers, specifically in development and staging environments where non-public domains have been used.
If you have specific feedback about what could be improved in the documentation, please provide us with more information about this so that we can improve the documentation.
thank you for helping out. I am using chrome and running a local project so it's localhost. I will deploy this somewhere on a public domain and see if it works from there.
I will update this discussion once I get to that point
Ok, good luck and keep us updated with the status.
getting the same error message as before : Recipient not found or is not a member of the list. - 128.
ok, so back after a chunk of work has been done.
At this point, I can push data to silverpop from episerver using an Xform hooked up properly.
Now, another question is, is it possible to retrieve data from Silverpop using the connector ?
So, imagine we have a user who logs in, we have user profile information somewhere and that data gets sent to a contacts list on submit. When the user logs again, they need to see the values they already entered and update them if they wish. Is this possible to do via the connector ?
Currently, the connector does not support pre-filling information from the current profile. This is a feature that we have been discussing to add as a built in feature to the connector, but we have not planned for if and when we will add this yet.
It's probably possible to do yourself, by adding event handlers to the form and working against the Silverpop API:s in the connector. However, we do not currently have documentation on how to do this and I would consider this to be a pretty advanced and somewhat unsupported scenario right now.