On Feb 28, 2:49 am, EuroMaverick
Post by EuroMaverickHello people,
This might have been discussed here before, but I am relatively new to this,
I am trying to enter a sales forecast for several months. Basically, this
concerns a leasing that we might sell to a customer. If the deal closed, this
means we will be able to invoice a certain amount over a certain period (e.g.
€ 1.000 per month over 36 months, starting in June).
The way I see it now, I can only manually split this up in a number of
opportunities to get the correct forecast result. This is not only
time-consuming, it is also very impractical when something changes because I
would have to all the different lines manually...
Any suggestions ?
Many thanks in advance !
Mav.
Mav,
I believe you can do this fairly directly within CRM. Ignoring the
technical aspects for a minute, lets discuss the data relationships.
You need something that has a M:1 relationship with opportunities. So
it sounds like quotes may work for you. (Or, a custom entity with an
N:1 relationship to opportunity, like Leon said). In CRM, each
opportunity can have many Quotes (Orders and Invoices, too.)
Typically, an opportunity is used to capture the overall forecast for
the deal. As you progress toward a sale, you can create many quotes
for each opportunity.
You then need a way to record the monthly nature of the revenue. You
could use Quote Detail records, but they are very tightly integrated
into CRM products, which wouldn't be suitable for your purposes.
Instead, create a custom entity "MonthlyQuote". Set up a 1:N
relationship between Quote and MonthlyQuote. You can have your 30
months represented by 30 MonthlyQuote records; the total will be
summarized on the Quote record. If the proposed terms change, in
effect you are quoting the customer a different deal. In that case,
you would want to expire the current quote, and create a new one (this
preserves the history of proposals to the customer).
Now, to automatically generate those quotes, you can use the fields
you mentioned on the opportunity: Amount, Term, Start Date. (€ 1.000
per month over 36 months, starting in June). You can't loop in
workflow, so you'll need to create a solution with code. You could do
it on the onSave event with Javascript, or create a postSave plugin.
Either way, the code should:
a) Expire any active quotes linked to this opportunity
b) Create a new active Quote, linked to this opportunity.
c) Loop <Term> times, and create a new MonthlyQuote record attached to
this Quote, each one for <Amount>, adding one month to the <StartDate>
for the Quote Date, for Amount.
d) Modify a forecast report to summarize the monthlyquote records, for
each opportunity. Each month, you'd recognize € 1.000. (If you have
to be able to view the forecast in CRM, you could duplicate the
monthlyQuote records as monthlyOpportunity records, too.)
For extra credit, create a custom entity called MonthlyForecast,
change the Name to ForecastMonth. Create a 1:N relationship between
MonthlyQuote and MonthlyForecast. This will create a lookup field you
can place on MonthlyQuote. Use this lookup field to record the
ForecastMonth. Now, to view the detailed forecast for any month, the
user can click on the MonthlyQuote record (ForecastMonth = April2010),
and all of the linked MonthlyForecast records will appear on the left
nav bar item. Lookups used in this way in CRM 4.0, are a powerful,
incredibly simple end-user reporting tool.
Before creating the code, I would create a few Quotes for some
opportunities, and create the MonthlyQuote entity, to visualize if
this would work... HTH,
Dave
-------------------------------------------
David L. Carr, President
Visionary Software Consulting, Inc.
Cell: 503-351-4207
Email: ***@earthlink.net
http://www.vscrm.com