In this article , I am explaining how to Qualify a lead as Account,contact or Opportunity
Creating Leads Record
Creating Leads Record
var lead1 = new Lead { CompanyName = "ITSoft", FirstName = "NAvish", LastName = "JAin", Subject = "Sample Lead 1" }; Guid _lead1Id = _serviceProxy.Create(lead1); var lead2 = new Lead { CompanyName = "ITSoft Works", FirstName = "Sheenam", LastName = "Jain", Subject = "Sample Lead 2" }; Guid _lead2Id = _serviceProxy.Create(lead2);Code to Qualify Lead as Account and Contact
var qualifyIntoAccountContactReq = new QualifyLeadRequest { CreateAccount = true, CreateContact = true, LeadId = new EntityReference(Lead.EntityLogicalName, _lead1Id), Status = new OptionSetValue((int)lead_statuscode.Qualified) }; var qualifyIntoAccountContactRes = (QualifyLeadResponse)_serviceProxy.Execute(qualifyIntoAccountContactReq); foreach (var entity in qualifyIntoAccountContactRes.CreatedEntities) { if (entity.LogicalName == Account.EntityLogicalName) { Guid _leadAccountId = entity.Id; } else if (entity.LogicalName == Contact.EntityLogicalName) { Guid _contactId = entity.Id; } }Retrieve the organization’s base currency ID for setting the transaction currency of the opportunity.
var query = new QueryExpression("organization"); query.ColumnSet = new ColumnSet("basecurrencyid"); var result = _serviceProxy.RetrieveMultiple(query); var currencyId = (EntityReference)result.Entities[0]["basecurrencyid"];Code to Qualify Lead as Opportunity
// Create an account to relate the opportunity to. var account = new Account { Name = "ITSoft Solutions", Address1_StateOrProvince = "Chandigarh" }; Guid _accountId = (_serviceProxy.Create(account)); // Qualify the second lead, creating an opportunity from it. We use an existing account for the // opportunity customer instead. var qualifyIntoOpportunityReq = new QualifyLeadRequest { CreateOpportunity = true, OpportunityCurrencyId = currencyId, OpportunityCustomerId = new EntityReference( Account.EntityLogicalName, _accountId), Status = new OptionSetValue((int)lead_statuscode.Qualified), LeadId = new EntityReference(Lead.EntityLogicalName, _lead2Id) }; var qualifyIntoOpportunityRes = (QualifyLeadResponse)_serviceProxy.Execute(qualifyIntoOpportunityReq); foreach (var entity in qualifyIntoOpportunityRes.CreatedEntities) { if (entity.LogicalName == Opportunity.EntityLogicalName) { Guid _opportunityId = entity.Id; } }Complete code to qualify lead to Account,Contact and Opportunity
using (OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy( serverConfig.OrganizationUri, serverConfig.HomeRealmUri, serverConfig.Credentials, serverConfig.DeviceCredentials)) { _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add( new ProxyTypesBehavior()); // Create two leads. var lead1 = new Lead { CompanyName = "ITSoft", FirstName = "NAvish", LastName = "JAin", Subject = "Sample Lead 1" }; Guid _lead1Id = _serviceProxy.Create(lead1); var lead2 = new Lead { CompanyName = "ITSoft Works", FirstName = "Sheenam", LastName = "Jain", Subject = "Sample Lead 2" }; Guid _lead2Id = _serviceProxy.Create(lead2); // Qualify the first lead, creating an account and a contact from it var qualifyIntoAccountContactReq = new QualifyLeadRequest { CreateAccount = true, CreateContact = true, LeadId = new EntityReference(Lead.EntityLogicalName, _lead1Id), Status = new OptionSetValue((int)lead_statuscode.Qualified) }; var qualifyIntoAccountContactRes = (QualifyLeadResponse)_serviceProxy.Execute(qualifyIntoAccountContactReq); foreach (var entity in qualifyIntoAccountContactRes.CreatedEntities) { if (entity.LogicalName == Account.EntityLogicalName) { Guid _leadAccountId = entity.Id; } else if (entity.LogicalName == Contact.EntityLogicalName) { Guid _contactId = entity.Id; } } // Retrieve the organization's base currency ID for setting the // transaction currency of the opportunity. var query = new QueryExpression("organization"); query.ColumnSet = new ColumnSet("basecurrencyid"); var result = _serviceProxy.RetrieveMultiple(query); var currencyId = (EntityReference)result.Entities[0]["basecurrencyid"]; // Create an account to relate the opportunity to. var account = new Account { Name = "ITSoft Solutions", Address1_StateOrProvince = "Chandigarh" }; Guid _accountId = (_serviceProxy.Create(account)); // Qualify the second lead, creating an opportunity from it. We use an existing account for the // opportunity customer instead. var qualifyIntoOpportunityReq = new QualifyLeadRequest { CreateOpportunity = true, OpportunityCurrencyId = currencyId, OpportunityCustomerId = new EntityReference( Account.EntityLogicalName, _accountId), Status = new OptionSetValue((int)lead_statuscode.Qualified), LeadId = new EntityReference(Lead.EntityLogicalName, _lead2Id) }; var qualifyIntoOpportunityRes = (QualifyLeadResponse)_serviceProxy.Execute(qualifyIntoOpportunityReq); foreach (var entity in qualifyIntoOpportunityRes.CreatedEntities) { if (entity.LogicalName == Opportunity.EntityLogicalName) { Guid _opportunityId = entity.Id; } } }
No comments:
Post a Comment