In this article , I am going to explain how to Qualify a lead as Account,contact or Opportunity
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
Note: only a member of this blog may post a comment.