.then(function(member) {
     if (member.memberId) {
         // IDs starting with '2-' from TheyWorkForYou.
         member._id = '2-'+member.memberId;
     } else {
         // IDs starting with '0-' are internal IDs.
         member._id = '0-'+crypto.createHash('sha1').update( memberName ).digest("hex");
     }
     member.lastUpdated = phpjs.date('Y-m-d');
     member.path = '/'+member._id+'/'+phpjs.strtolower( member.name.replace(/ /g, '-').replace(/(--.*)/g, '-').replace(/[^A-z0-9-]/g, '').replace(/-$/, '') );
     db.members.save(member, function(err, saved) {
         deferred2.resolve(member);
     });
 });
 .then(function(member) {
     // If we have valid personId then save to DB
     if (member.personId) {
         var deferred2 = Q.defer();
         // IDs starting with '1-' are from the offical API.
         // IDs starting with '2-' come from TheyWorkForYou.
         member._id = '2-'+member.memberId;
         member.lastUpdated = phpjs.date('Y-m-d');
         member.path = '/'+member._id+'/'+phpjs.strtolower( member.name.replace(/ /g, '-').replace(/(--.*)/g, '-').replace(/[^A-z0-9-]/g, '').replace(/-$/, '') );
         db.members.save(member, function(err, saved) {
             deferred2.resolve(member);
         });
         return deferred2.promise;
     } else {
         return member;
     }
 })