Is there a way to trigger an existing lead or an existing contact with an email when I import a file as Campaign Members? Also, with this import, I usually gets duplicate leads or contacts which then I have to manually merge them. This is a lot of work when I have more than 100 records to import. Any help is greatly appreciated.
Let me answer the first question. You could initiate an email to a lead or a contact that is linked to the Campaign Member record with either an apex SendEmail() method or using a workflow rule. The apex trigger would be on the Campaign Member object (on insert) as would the workflow rule.
As for the second question, there are many duplicate prevention import tools available on the AppExchange. CRMFusion has a prduct called PeopleImport that specializes in the import and matching of contacts and leads and adding of these people to a campaign, all in one step. The scenarios that you create can be saved for future import runs.
Here is something you can do if you are loading campaign member in A campaign. "Create a custom check-box on contacts/leads and a workflow rule to send email on change of that check-box. Write a trigger to fire "on insert" of the campaign-members to check/uncheck the check-box on corresponding lead/contact."
As for second part of your question, I do not think that you can actually have multiple campaign members records for same contact or lead under a campaign. if i remember right, system automatically skips duplicate members ( i might be wrong here so am open to corrections).