I previously used SnapEngage and, with a bit of javascript work, was able to link it up to Marketo. SnapEngage goes directly into Salesforce, which is nice. They provide a simple API with event hooks. I then used the Marketo Munchkin API to sync the leads to Marketo so . It worked out nicely.