# Create a sales job

## Overview

A sales job records commercial work as it moves from an early opportunity through
inquiry, offer, order, and delivery. Create one when you need a record for a new
piece of sales work; open an existing one when you need to continue work already
recorded.

| If you need to… | Go to |
|---|---|
| Start a new sales job | [Enter the main job information](#enter-the-main-job-information) |
| Check which parts of the form apply | [Understand the sales-job form](#understand-the-sales-job-form) |
| Add customer, inquiry, or item details | [Complete the applicable stage details and items](#complete-the-applicable-stage-details-and-items) |
| Save the completed form | [Save the sales job and handle validation](#save-the-sales-job-and-handle-validation) |
| Continue the saved work | [Continue with the sales-job lifecycle](#continue-with-the-sales-job-lifecycle) |
| Read the stage flow | [Sales job lifecycle](doc:sales-jobs-lifecycle) |
| Locate an existing row | [Find sales-job work](doc:find-sales-job-work) |
| Compare the available creation routes | [Sales-job variants](doc:sales-job-variants) |

The sales-job stages are **Potentials**, **Inquiries**, **Offers**, and **Orders**.
Work can also leave the main path through missed, regretted,
cancelled, lost, rejected, or deleted outcomes.

```mermaid
flowchart LR
  P[Potentials] --> I[Inquiries]
  I --> O[Offers]
  O --> R[Orders]
  R --> D[completion]
  I --> X[Missed / regretted / cancelled]
  O --> Y[Lost / regretted / cancelled]
  R --> Z[Rejected / cancelled]
```

## Prerequisites — what must be in place for this to go smoothly

Prerequisites

| Have this ready | Why it matters |
|---|---|
| The customer and vendor for the job | These parties are selected in **Client** and **Vendor** when the applicable stage details are completed. |
| The job title and product type | They identify the commercial work in the form and in later list views. |
| The inquiry number, inquiry date, bid due date, and requested offer type when the route asks for them | These values describe the request that the job tracks. |
| The item description, unit, and quantity | These values define what the job concerns and are checked before saving. |
| Permission to edit the job and belong to the relevant branch | Edit actions are limited by the job's edit and branch rules. |
| A saved record with no unsaved panel changes for later stage actions | Several later actions require an existing job and a saved panel. |

Some fields are required only where your company configures them. The same applies
to some embedded panels and list columns. Use the fields and headers that appear in
your form and list layout.

> Important: Check the required marker on the field in front of you. A field can
> be required on one configured form and optional on another.

## Find or open a sales job

A sales-job route is the place where you either start a new record or continue with
an existing row. To create a new record, use the standard new-job option in the
Sales jobs entry surface.

Prerequisites

- You know whether you are creating a new record or continuing an existing one.
- For an existing record, you know enough identifying information to recognize its row.

Steps

1. Open the standard new-job form to create a standard sales job.

2. Open [Sales-job variants](doc:sales-job-variants) to choose a potential, direct
   order, or instant-job route.

3. Open [Find sales-job work](doc:find-sales-job-work) to continue with an existing
   sales job.

4. If the sales-job list is already open, use the visible stage tabs and column
   headers to identify the row instead of relying on a fixed column arrangement.

5. Select the row you need when the list presents it.

**Result:** You are on the new sales-job form or have identified the existing sales
job to open.

![Check the stage controls, form fields, item headers, and Save buttons on a new sales-job form.](https://atloriaassets.blob.core.windows.net/assets/a438221c-c1af-407c-b9e6-a56c986db846/72ba55f4a1135c1ec6a13cdba04da7f6.png)

## Understand the sales-job form

The sales-job form brings the job's identity, stage details, items, and related work
together. The current form displays the stage controls followed by the job fields and
an item grid.

Use the stage row to choose a stage, the job fields to identify the work, and the
item grid to enter the products or services included in the job.

| Area | Fields |
|---|---|
| Job identity | **Status**, **Branch**, **Salesperson Responsible**, **Product Type**, **Job Title**, **End User**, **Estimated Value**, **File Number**, **Expected Order Date** |
| Parties and inquiry | **Client**, **Vendor**, and applicable inquiry fields |
| Assessment | **Contact to Decision Makers**, **Budget Availability**, **Chance in Competition**, **Order chance** |
| Item grid | **Item Description**, **Unit**, **Qty** |

The form also displays the readouts **Time Frame**, In Branch Currency (Rate:1),
and **Calculated Rating** when they apply. The item grid currently shows the
headers **Item Description**, **Unit**, and **Qty**.

The form can include leads, inquiries, offers, orders, comments, tasks, activities,
files, contacts, invoices, payments, letters of guaranties, purchasing, job costing,
references, and customer survey areas. A panel or tab appears only when its stage,
record, feature access, or user role permits it. Related-work guidance is in
[Sales-job comments and tasks](doc:sales-job-comments-and-tasks),
[Sales-job activities and files](doc:sales-job-activities-and-files), and
[Sales-job contacts, guarantees, and history](doc:sales-job-contacts-guarantees-and-history).

The form also contains **Save** and **Save and Close**. The Team field is not part of
the available form, and **Category** is not an item-grid header.

## Enter the main job information

The main information identifies the work, the parties responsible for it, and the
commercial assessment that accompanies it.

Prerequisites

- You are on the standard new-job form or on a permitted editable sales-job form.
- You have the job title, product type, customer, vendor, and any available dates or
  commercial assessment information.

Steps

1. In **Branch**, review the branch shown for the job.

2. In **Salesperson Responsible**, select the person responsible for the sales job.

3. In **Product Type**, select the option that describes the job. **Product Type**
   presents product-name options, and each option has an identifier.

4. In **Job Title**, enter the title used to recognize the job.

5. In **End User**, select the end user when the field is available.

6. In **Estimated Value**, enter the estimated value when it is available.

7. In **File Number**, enter the file number when you use one.

8. In **Expected Order Date**, enter the expected date when it is available.

9. In **Client**, select the company the request came from.

10. In **Vendor**, select the vendor connected with the job when the applicable
    stage requires one.

11. Complete the assessment fields that apply.

   | If you need to record… | Use |
   |---|---|
   | The people who decide | **Contact to Decision Makers** |
   | The customer's budget position | **Budget Availability** |
   | The competitive position | **Chance in Competition** |
   | The likelihood of an order | **Order chance** |
   | A stage-specific status | **Status** |

12. In **Order chance**, choose a value when the field appears: `90 %`, `70 %`, `50 %`,
     `30 %`, or `10 %`.

13. Review the required markers before moving to the stage details.

**Result:** The identifying, party, date, and assessment information is entered on
the sales-job form.

## Complete the applicable stage details and items

Stage details describe the request, offer, or order represented by the job. Item rows
describe the products or services included in that stage.

Prerequisites

- The main job information is entered.
- You know which stage details apply to the selected route.
- You have each item's description, unit, and quantity.

Steps

1. In the inquiry details, complete the fields that apply.

   | Information to record | Field |
   |---|---|
   | The customer's inquiry reference | The applicable inquiry field |
   | The date of the inquiry | The applicable inquiry field |
   | The date by which the bid is due | The applicable inquiry field |
   | The requested offer format | The applicable inquiry field |

2. In the item grid, enter the item description in **Item Description**.

3. Select the matching unit in **Unit**.

4. Enter the quantity in **Qty**.

5. Review the applicable offer or order panel before saving.

   | Panel | Use it for |
   |---|---|
   | Inquiry details | Request and bid information |
   | Offer details | Offer information and offer-stage work |
   | Order details | Order information and order-stage work |

6. Correct the item row if **This field is required ** appears.

7. In **Qty**, enter a value greater than zero and no greater than the displayed limit
   if `Invalid input. The value must be greater than 0 and cannot exceed 999,999.00`
   appears.

**Result:** **Qty** contains a value greater than zero and no greater than the
displayed limit.

8. Select the affected price or tax entry in the applicable offer or order grid and
   correct it if `Invalid input. Please enter a non-negative value` appears.

**Result:** The affected price or tax value is non-negative.

**Result:** The applicable inquiry, offer, or order information and item rows are
ready for validation.

![Review the required main fields, inquiry fields, and item grid before saving.](https://atloriaassets.blob.core.windows.net/assets/a438221c-c1af-407c-b9e6-a56c986db846/5ce84428101bdf92bb4336509d3ad240.png)

## Save the sales job and handle validation

Saving validates the form before it commits the job. **Save** keeps the form in the
current work area; **Save and Close** is the alternate save control shown on the
form.

Prerequisites

- The applicable fields and item rows are complete.
- You have checked the required markers.
- You are not trying to trigger an embedded activity, purchasing, email, or other
  related workflow from this page.

Steps

1. Select **Save**.

2. Inspect the message on screen and select the corrective action in this table.

   | Message | Corrective action |
   |---|---|
   | `Check mandatory field(s)` | Complete the fields with required markers. |
   | `One or more items has ZERO quantity` | Enter a quantity greater than zero in **Qty**. |
   | `One or more items has no unit` | Select a value in **Unit**. |
   | `An error occurred while processing your request` | Correct the fields you changed and select **Save** again. |
   | `Error saving custom fields` | Select **Save** again after reviewing the configured fields. |
   | `An account with this name already exists` | Use the existing account rather than creating a duplicate. |
   | `A project with this name already exists` | Use the existing project rather than creating a duplicate. |
   | `Please save opened inquiry first (owning page: Sales-job lifecycle)` | Save the open inquiry before continuing with the sales job. |
   | `All inquiries must be in draft stage to revert to potential (owning page: Sales-job lifecycle)` | Keep the inquiry in draft before returning to the potential stage. |
   | `Cannot be un-delivered — a due invoice already exists` | Continue from the invoice state rather than attempting to reverse delivery here. |
   | `All offers must be in draft status to revert to inquiry` | Return the offer to draft before returning to inquiry. |
   | `Error {{errorMsg}}` | Use the text substituted for `{{errorMsg}}` to correct the affected entry. |
   | `This field is required ` | Complete the item field identified by the validation marker. |
   | `Invalid input. The value must be greater than 0 and cannot exceed 999,999.00` | Correct the quantity in **Qty**. |
   | `Invalid input. Please enter a non-negative value` | Correct the affected price or tax value in the applicable grid. |
   | `Custom fields saved successfully` | Continue with the next available sales-job action. |
   | `Job updated successfully` | Continue with the updated sales job. |
   | `Job deleted successfully` | Follow [Sales job lifecycle](doc:sales-jobs-lifecycle) for the resulting job state. |
   | `Job regretted successfully` | Follow [Sales job lifecycle](doc:sales-jobs-lifecycle) for the resulting job state. |
   | `Job cancelled successfully` | Follow [Sales job lifecycle](doc:sales-jobs-lifecycle) for the resulting job state. |
   | `Job missed successfully` | Follow [Sales job lifecycle](doc:sales-jobs-lifecycle) for the resulting job state. |
   | `Job reactivated successfully` | Continue with the reactivated sales job. |
   | `Converted to offer successfully` | Continue in [Offers](doc:offers). |
   | `Converted to inquiry successfully` | Continue in [Inquiries](doc:inquiries). |
   | `Converted To Regretted` | Follow [Missed, regretted, and cancelled jobs](doc:missed-regretted-and-cancelled-jobs). |
   | `Converted to cancelled` | Follow [Missed, regretted, and cancelled jobs](doc:missed-regretted-and-cancelled-jobs). |
   | `Converted to lost` | Follow [Missed, regretted, and cancelled jobs](doc:missed-regretted-and-cancelled-jobs). |

   | Message | Owning page |
   |---|---|
   | `Please save opened inquiry first (owning page: Sales-job lifecycle)` | Sales-job lifecycle |
   | `All inquiries must be in draft stage to revert to potential (owning page: Sales-job lifecycle)` | Sales-job lifecycle |

**Result:** You have identified the correction or next page for the message shown.

3. Read the message in the following table and follow its stated correction on the
   named owning page.

   | Message | Owning page | Exact source |
   |---|---|---|
   | `Cannot be un-delivered — a due invoice already exists` | Sales-job lifecycle | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:42964` |
   | `All offers must be in draft status to revert to inquiry` | Sales-job lifecycle | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:42968` |
   | `Error {{errorMsg}}` | Sales-job lifecycle | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:42972` |
   | `An account with this name already exists` | Sales-job lifecycle | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:42976` |
   | `A project with this name already exists` | Sales-job lifecycle | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:42980` |
   | `Please enter action for each milstone  ` | Sales offer | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:54577` |
   | `Please save opened cost sheet first` | Sales offer | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:54581` |
   | `There is a maximum discount that exceeds the negotiation margin.` | Cost calculation | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:55749` |
   | `Your request was completed successfully` | Account details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:57428` |
   | `Error: Vendor not saved yet` | Account details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:57442` |
   | `Error: Client not saved yet` | Account details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:57446` |
   | `This Field Is Required` | Account details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:57450` |
   | `Forbidden characters detected. Please remove them and try again.` | Contacts | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:61543` |
   | `  You already have a contact with this name` | Contact details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:62064` |
   | `Just '_'‘-''.' And '&' Characters Accepted` | Files | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:62920` |
   | `Sales order is archived` | Bill of materials | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:68711` |
   | `Booked quantity for this job is greater than the required BOM quantity` | Bill of materials | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:68715` |
   | `You cannot edit or delete the product after the purchase package is created` | Bill of materials | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:68719` |
   | `Cannot be deleted. Product is in purchasing` | Bill of materials | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:68723` |
   | `You cannot edit the product after the PO is created` | Bill of materials | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:68727` |
   | `This product is already included in BOM` | Products list | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:69655` |
   | `The first variant cannot be deleted` | Product details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:70074` |
   | `An error occurred while connecting to your CRM system.` | Product details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:70078` |
   | `Please select one product` | Product details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:70082` |
   | `  Package must have at least one item` | MRQ details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:71885` |
   | `You cannot save without adding at least one product` | MRQ details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:71893` |
   | `One of products has no quantity` | MRQ details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:71897` |
   | `Action not allowed` | Activities | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:74823` |
   | `Check validation` | Principal invoices | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:77784` |
   | `No remaining items. All items have been selected` | Purchasing | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:81745` |
   | `This action is only allowed if you belong to that branch` | Purchasing | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:81753` |
   | `Please enter at least one email` | Purchasing | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:81757` |
   | `Inquiry must have at least one item` | Purchasing | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:81761` |
   | `Offer must have at least one item` | Purchasing | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:81765` |
   | `Order must have at least one item` | Purchasing | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:81769` |
   | `Items labeled as ‘Ready for Shipment’ or ‘Delivered’ cannot be deleted` | Purchasing | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:81773` |
   | `Please select one or more items to create a RFQ.` | Purchasing | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:81781` |
   | `Error loading accounts` | Deliveries and orders | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:90933` |
   | `Serial you have entered already exist and belong to same manufacturer` | Reference details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:92082` |
   | `There is error in serial you have entered` | Reference details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:92086` |
   | `Minimum: At least one serial` | Reference details | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:92094` |
   | `You don’t have permission` | Letters of guaranties | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:94558` |
   | `LG still needs confirmation` | Letters of guaranties | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:94562` |
   | `LG has one or more extensions or deductions and cannot be reverted to the requested stage` | Letters of guaranties | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:94566` |
   | `Please choose a date after the current expiry date` | Letters of guaranties | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:94570` |
   | `  There is a pending increase you can edit` | Letters of guaranties | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:94574` |
   | `One topic and at least one note is required` | New activity | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:97968` |
   | `There is no topic to print` | New activity | `runs/pams-sales-jobs/facts/facts-screen-create-sales-job-1.json:97972` |
   | `Required Receiving Date` | MRQ details | `Frontend/src/assets/i18n/en.json:1175` |
   | `Required Receiving After` | MRQ details | `Frontend/src/assets/i18n/en.json:1176` |
   | `Invalid input. Please enter a non-negative value` | Sales offer and order item grids | `Frontend/src/app/components/sales/new-job/offer-panel-details/offer-panel-details.component.ts:427` |
   | `Please save opened inquiry first` | Inquiry editing | `Frontend/src/assets/i18n/en.json:253` |
   | `All inquiries must be in draft stage to revert to potential` | Potential conversion | `Frontend/src/assets/i18n/en.json:2211` |
   | `Required Offer Type` | Inquiry details | `Frontend/src/assets/i18n/en.json:1130` |
   | `Required Bid Due Date` | Inquiry details | `Frontend/src/assets/i18n/en.json:1129` |

**Result:** You know which page owns an embedded-area message.

**Result:** The form has been submitted for validation.

## Continue with the sales-job lifecycle

The saved job continues through the sales-job lifecycle. Read [Sales job lifecycle](doc:sales-jobs-lifecycle)
for the stage flow.

Read [Sales-job record](doc:sales-job-record) for the workspace after you open a row.

Steps

1. Use the stage shown on the sales-job form to identify whether the work is in
   **Potentials**, **Inquiries**, **Offers**, **Orders**, or the final stage.

2. Open [Sales-job information and assessment](doc:sales-job-information-and-assessment)
   when you need field-level guidance for the job information or assessment.

3. Open [Sales-job items](doc:sales-job-items) when you need detailed item-grid
   guidance.

4. Open [Sales-job comments and tasks](doc:sales-job-comments-and-tasks) for related
   comments and tasks.

5. Open [Sales-job activities and files](doc:sales-job-activities-and-files) for
   activities and attachments.

6. Open [Sales-job contacts, guarantees, and history](doc:sales-job-contacts-guarantees-and-history)
   for contacts, guarantees, and history.

**Result:** You know which sales-job page owns the next stage or related workspace
activity.
