Skip to main content

Help

Americon Bid Portal

User manual

How the bid portal works, control by control. Every "?" on the site links into this page.

Download this manual One file. Works offline, prints, and can be emailed to somebody without an account.

New here? Start with these

What the bid portal doesThe portal publishes Americon bid opportunities and their deadlines, and hands out plan documents to the contractors invited to price them.What the portal does for youIt publishes the job, sends the invitations, hands out the drawings, and keeps the record of who was asked and what they did about it.Your first project, start to finishCreate a draft, fill in the editor, publish, invite, then watch the plan holders arrive. Nothing leaves the building until you publish.How a reply reaches the jobEvery invitation carries a reply address unique to that job and that firm, so a contractor pressing Reply lands on the right record without anybody sorting mail.The headline tilesA live count of what needs attention now. Each tile is a link into the project list already filtered to exactly what it counted.Drafts and publishingEvery project starts as a draft, visible only to Americon staff. Publishing is a separate button, and it is the moment the project becomes real to anyone outside.VisibilityPublic puts the project on the bid calendar for anyone to find. Private keeps it off every public surface and reachable only through its invite link.The invite linkThe URL to send contractors. For a private project it carries the access code, and it is the only address that will open the project.Opening your invitationThe link in your invitation is the only address that opens a private project. If you lose it, you can have it sent again from the portal.Being asked who you areName, company and email, asked once. It is how we reach you if the drawings are revised or the bid date moves. You can skip it.Asking a questionReply to your invitation email, or use Email the project team on the project page. Either reaches the people running the job and is recorded against it.Subscribing to bid deadlinesSubscribe once and every public bid deadline we post from then on appears in your own calendar automatically. No account needed.Keyboard shortcutsPress ? to see the shortcuts available on the page you are on. "g" then a letter goes somewhere; "/" jumps to the search box.

Section 1

About the portal

What this site is for, who uses it, and how to get help without leaving the page you are on.

What the bid portal does

The site as a whole

The portal publishes Americon bid opportunities and their deadlines, and hands out plan documents to the contractors invited to price them.

The Americon Bid Portal does three jobs, and everything on the site is in service of one of them.

  1. It publishes bid opportunities. Every project carries a bid due date, a location, the trades wanted, and the drawings. Public projects appear on the bid calendar for anyone to find. Private projects appear nowhere and are reached only through an invite link.
  2. It distributes plan documents. Drawings and bid documents are attached to the project and served through an access-checked endpoint, so a private project's plans cannot be downloaded by someone who was never sent the link.
  3. It keeps track of who is bidding. Contractors are asked to identify themselves when they take the plans. That list is what makes it possible to tell everyone when an addendum is issued or a bid date moves.

Two audiences use it, and they use it very differently. Americon staff sign in and manage projects. Contractors never sign in at all — they arrive from an email link, read the project, take the plans, and leave.

Roles and what each one can do

Set per account in User Management

Project Managers and Project Coordinators hold identical permissions. Administrators hold those plus account management and the WordPress admin.

RoleSigns in?What they can do
AdministratorYesEverything below, plus creating and suspending accounts, and access to the WordPress admin and the Americon tools pages.
Project ManagerYesCreate, edit and delete projects; see private projects; upload and remove plan files; send invites and plan-holder notifications; export project lists.
Project CoordinatorYesExactly the same as Project Manager.
Contractor / bidderNoViews public projects and the bid calendar. Views a private project only when holding its invite link. Downloads plan files. Subscribes to the calendar feed.
NoteManager and Coordinator are deliberately identical. The distinction is who is responsible for a project, not what the software will let them press — and deleting a project moves it to the Trash rather than wiping it, so granting that broadly is safe.

Staff never need the WordPress admin screens. Anyone who is not an administrator is redirected out of /wp-admin and back to the calendar dashboard, and the admin bar is hidden for them.

The help buttons

Beside labels and headings throughout the site

Press any "?" on the site for a short explanation of the control beside it, with a link into the full manual.

Small "?" buttons sit beside the controls that are worth explaining. Press one — with the mouse, with a finger, or by tabbing to it and pressing Enter — and a short explanation appears. Press Escape, or click anywhere else, to dismiss it.

Each one carries a Read more link into the matching entry in this manual, so the popup can stay short.

NoteThe help text and this manual are generated from the same source, so they cannot disagree with each other. When a feature changes, both change.

Section 2

For project managers and coordinators

What the portal takes off your desk, what it can prove afterwards, and the short path through your first project. Everything here is covered in full further down — this is the map.

What the portal does for you

The site as a wholeAmericon staff

It publishes the job, sends the invitations, hands out the drawings, and keeps the record of who was asked and what they did about it.

Bidding used to live in an Outlook folder, a spreadsheet of addresses, and somebody's memory. The portal takes the four jobs that were spread across those and does them in one place, against one project.

The jobWhat the portal doesWhere
Publish the opportunityA project carries its bid date, location, trades and drawings. Public ones appear on the bid calendar for any contractor to find; private ones appear nowhere and open only from an invite link.Creating a project
Ask people to bidPick contacts and groups from the shared directory, see who is excluded and why before anything sends, then send. Each firm gets its own link.Invitations
Hand out the drawingsPlan files are served through an access check, not from a public folder. Contractors identify themselves as they take them, which is what makes it possible to tell them about an addendum later.Plan holders
Keep the recordWho was asked, when, whether it was delivered, whether it was opened, and whether they said they are bidding — exportable as a spreadsheet.Who has been invited

Manager and Coordinator hold identical permissions. The distinction is who is responsible for the job, not what the software will let you press.

TipThe fastest way to understand the whole thing is to make a private draft and send yourself a test invitation. A draft is invisible to everyone outside Americon until you publish it, so there is nothing to break.

Your first project, start to finish

Create Project, then the project editorAmericon staff

Create a draft, fill in the editor, publish, invite, then watch the plan holders arrive. Nothing leaves the building until you publish.

The whole path, in the order you will actually walk it. Each step is a topic of its own further down.

  1. Create the draft. Name, city and state, bid due date, and the two people responsible. Everything else can wait. Choose Public or Private here — see Visibility, because publishing a job that should have been private cannot be undone once the calendar has served it.
  2. Fill in the editor. The rail down the left side is the whole project; each entry shows its own summary, so you can see what is still empty without opening it. Add the scope, the trades, the drawings.
  3. Upload the drawings, and give each one a revision label that matches its title block. This is the single most consequential field on the screen — see Revision labels.
  4. Publish. Until you do, the project is off the calendar, sends no reminders, and its plan files will not download — an invitation sent from a draft arrives with dead links.
  5. Invite. Open Contractor invite email, press Choose who to invite, pick contacts, groups or a whole trade, and read the review step before you send. Send a test to yourself first.
  6. Watch the plan holders. Contractors who take the drawings identify themselves, and appear in the project. That list is who you notify when a drawing is revised or the date moves.
ImportantSteps 4 and 5 are in that order for a reason. Invitations sent from an unpublished draft carry links that lead nowhere, and the contractor who follows one has no way of knowing the job exists.

What contractors do without calling you

The contractor-facing side of the siteAmericon staff

Lost links, calendar subscriptions and "we are not bidding this one" are all self-service. None of them need anybody at Americon to be at their desk.

Every one of these used to be a phone call, and every one of them arrived at the worst possible moment — out of hours, or on the afternoon of the deadline.

  • Get their invitation back. A contractor who lost the email asks for it again from the site, and it is sent to the address already on the invitation. Nothing is revealed to somebody typing in a stranger's address.
  • Say they are not bidding this one — without unsubscribing from everything. That is the column a bid board needs and a blanket unsubscribe destroys.
  • Subscribe to the bid calendar, so public deadlines appear in their own calendar automatically, with no account.
  • Add one bid date to their calendar from the project page.
  • Take the drawings, identifying themselves as they go.
NoteA contractor never signs in. There is no account, no password, and nothing for you to create — they arrive from a link in an email and leave when they are done.

What the portal can prove afterwards

Project editor, Who has been invitedAmericon staff

Every invitation sent from the portal is recorded with its delivery outcome. That record is what answers a good-faith solicitation question months later.

On a public job, or a job with a participation goal, somebody may eventually ask who was invited to bid. That question arrives long after the memory of it has gone, and an Outlook sent-items folder is not an answer — it does not say whether the message was delivered, and it does not survive the person leaving.

The portal records, per firm: that they were invited, when, what the mail server said about delivery, whether the invitation was opened, whether they took the drawings, and whether they told us they are bidding.

Download the record saves all of it as a spreadsheet — the version to hand to an owner or an auditor.

ImportantThis only holds for invitations sent from the portal. An invitation composed in Outlook records nothing, honours no unsubscribe, and leaves the project unable to say the firm was ever asked. That is why the panel no longer offers a way to copy one out.

The audit trail

Dashboard, under the figures — **Audit trail**Americon staff

An append-only record of who changed what and when — deadlines, visibility, plan files and access links. Months later, it is what settles the argument.

Bid deadlines, visibility, plan attachments and access codes are contractual facts, and WordPress keeps no history of them on its own. The audit trail does.

It answers "the due date was different when I looked" and "when did that invite link stop working", long after everybody has stopped remembering. Each entry records what was done, on which job, by whom, and when — with the person's name kept alongside their account, so an entry still names somebody after they have left.

Search by job or by person, narrow it to one kind of change, or set a date range. The newest entries are first.

NoteNothing in the portal edits or removes an entry, and nothing ages out. An audit trail that can be edited is not evidence, and one that quietly deletes itself after a year is no use to a question asked in the second year.

The screen shows changes to jobs — deadlines, visibility, plan files, invitation links, bid correspondence. Account changes and sign-ins are recorded too, and an administrator can see those; they are site administration rather than anything about a bid, so they are not listed here.

What happens without anyone pressing anything

Scheduled, site-wideAmericon staff

Deadline reminders, bid-closed notices and the nightly health check all run on their own. You are told when something needs you.

  • Deadline reminders go to plan holders as a bid date approaches.
  • Bidding closes on its own at the due date. Closing early, or reopening, is a deliberate act you can take in the editor.
  • Addresses that stop working are set aside automatically when mail bounces, so the same dead address is not written to forever.
  • The site checks itself every night and mails administrators when something breaks — rather than waiting for a contractor to ring up and report it.
NoteReminders and notices only go out for published projects. A draft sends nothing, which is usually what you want and occasionally a surprise.

Section 3

Signing in

For Americon staff. Contractors do not have accounts and never need to sign in.

Signing in and where you land

The Sign in button in the header, or /loginAmericon staff

Sign in with your username or email address. Staff land on the calendar dashboard.

Use the Sign in button in the site header. You can enter either your username or the email address on your account.

After signing in, Project Managers and Coordinators are taken to the calendar dashboard, because that is where the day's work starts. Administrators are taken wherever they asked to go.

The old WordPress login screen at /wp-login.php redirects to the branded sign-in page, so a bookmark to either one works.

When sign-in does not work

The sign-in pageAmericon staff

A wrong password says so. A suspended account says so separately — that one needs an administrator, not a password reset. Ten failed tries locks the connection for fifteen minutes.

  • Wrong username or password. You are returned to the sign-in page with a message. Use Lost your password? to have a reset link emailed to you.
  • Your account has been suspended. The sign-in is refused with its own distinct message. A password reset will not help; an administrator has to restore the account in User Management.
  • You never set a password. New accounts are created without one. The set-password email is the only way in until it is used. Ask an administrator to resend it.
  • Too many failed attempts. After ten failures from the same connection within fifteen minutes, further attempts are refused for fifteen minutes. The page says so, and says how long is left.

The lock is on the connection, not on your account: it clears itself after fifteen minutes with nothing to reset and nobody to ring. Your account is not suspended, disabled, or changed in any way by it.

TipLocked out and genuinely cannot wait? Use Lost your password? from a phone on mobile data. That is a different connection, so it is not locked, and the reset email arrives regardless.
NoteThe limit exists because the sign-in page is the one door into this portal that anybody on the internet can reach, and it guards accounts that can read every private project and the whole contact directory. Ten tries is far more than a person mistyping a password needs, and far fewer than guessing one requires.
ImportantIf nobody can sign in as an administrator, the WordPress admin is still reachable directly at /wp-admin. That is the recovery path, and it is why at least one administrator account should always be kept live.

Section 4

The calendar dashboard

The home page of the portal: every project with a bid due date, plotted on a month grid, with the figures that matter above it. Signed-out visitors see public projects only; staff see public and private together.

The headline tiles

Calendar Dashboard, above the calendar

A live count of what needs attention now. Each tile is a link into the project list already filtered to exactly what it counted.

A month grid is good at "how does next month look" and bad at "what needs me today". The tiles answer the second question without any clicking, and each one is a link into the matching filtered list.

TileCountsGoes to
Closing todayBids whose deadline falls before midnight tonight.Public Projects, filtered to today.
Closing this weekBids due within the next seven days.Public Projects, filtered to this week.
Open public bidsPublic projects still accepting bids.Public Projects.
Open private bidsInvite-only projects still accepting bids. Staff only.Private Projects.

Each tile keeps its own colour whatever the number is — red for today, amber for this week, blue for public, teal for private. A tile showing zero is dimmed rather than recoloured, so the row still reads as four distinct things on a quiet week, and colour still means "this needs you".

The Calendar Dashboard: a row of counting tiles above a month grid, with two bid deadlines marked on it and a calendar subscription bar underneath.
The dashboard staff land on after signing in. The tiles answer "what needs me today"; the grid answers "how does next month look".

Calendar view and List view

Calendar Dashboard, beside the page title

Two shapes for the same projects. Calendar answers "how does next month look"; List answers "what closes soonest" and adds search, filters and export.

The same set of projects, presented two ways:

  • Calendar — a month grid. Best for seeing how a month is shaped and spotting the days that are stacked.
  • List — the projects sorted by deadline, soonest first, with the full search and filter bar, selection, and CSV export.

The choice is carried in the page address, so a link to either view can be bookmarked or sent to someone else and will open in the same view.

NoteStaff see private projects in List view here. There is a link below the list to switch to the public projects instead.

Reading the calendar markers

Calendar Dashboard, on the month grid

Each marker is one bid deadline. Colour says whether it is public or private, and whether it is close enough to worry about.

A marker sits on the day a bid closes, not on the day work starts. Colour carries two facts at once:

  • Blue — a public project, open for bidding.
  • Teal — a private, invite-only project. Only staff ever see these.
  • Amber — closing soon. Anything inside 72 hours of its deadline.
  • Grey — the deadline has passed.
NoteSeventy-two hours is the site-wide definition of "closing soon". The reminder emails to plan holders use the same number, so the calendar and the mail cannot disagree about what is urgent.

Opening a day

Calendar Dashboard, click any day on the grid

Click a day to list everything closing on it, with a link straight to each project.

Clicking a day opens a panel listing every project closing that day, each one a link to its details page. Press Escape or the close button to dismiss it.

This works with the keyboard as well as the mouse, and on touch screens. There is no hover behaviour to miss.

Subscribing to bid deadlines

Calendar Dashboard, below the calendar

Subscribe once and every public bid deadline we post from then on appears in your own calendar automatically. No account needed.

The Subscribe in your calendar button hands the feed to whichever calendar application is registered on your machine — usually Outlook or Apple Calendar — and opens its subscribe dialog.

If that button does nothing, which is common on locked-down corporate machines, use Copy feed URL instead and paste the address into your calendar's "add calendar by URL" option.

  • The feed carries public, open bids only. Private projects never appear in it.
  • Your calendar refreshes it on its own schedule, typically every few hours.
  • When a bid date moves, the existing entry moves. You do not accumulate duplicates.
  • Times are published as fixed points in time, so a bidder in Denver sees a Chicago deadline correctly converted to their own clock.
NoteThis is the single most useful thing a contractor can do on this site, and it takes one click. It is the only way to hear about a new bid without visiting the site or waiting for an email.

Section 5

Finding projects

Public Projects and Private Projects are the same list over different data, so every control below behaves identically on both. Projects are always sorted by bid deadline, soonest first.

Filtering by state

The filter bar at the top of any project list

Narrows to projects in one US state. The list is the same on every page of the site, so a state chosen here means the same thing everywhere.

Choose a state and press Filter. Leave it on All states to clear it.

The state comes from the project record, which is why it is a dropdown rather than free text — a project entered as "Wisc." would never be found by someone filtering on WI.

Filtering by trade

The filter bar, when trades have been set up

Narrows to projects wanting a particular trade. Only appears once Americon has set up its trade list.

Trades are the work packages a project wants priced — electrical, mechanical, sitework, and so on. Choosing one narrows the list to projects tagged with it.

This control is hidden entirely until trades have been created, rather than sitting in the filter bar as an empty dropdown.

NoteFor a contractor this is the fastest way to a shortlist: filter to your trade, then subscribe to the calendar so you hear about the next one without checking back.

Quick filters

Above the list, as a row of links

One-click versions of the questions people actually arrive with. Press an active one again to clear it.

Closing today, Closing this week and Closing soon are one-click deadline filters. The active one is marked; pressing it again removes it.

They are ordinary links carrying the filter in the address, so any one of them can be bookmarked or pasted into a message and will open showing the same thing.

A chip appears above the list showing which deadline filter is in force, with an × to remove it — so a narrowed list can never be mistaken for the whole list.

Results per page

The filter bar at the top of any project list

How many projects to show before paginating. Ten, twenty or fifty.

Sets how many rows appear before the list paginates. Larger pages are worth it when you are about to select rows for export, since selection applies to the page you are looking at.

Include closed

The filter bar, staff onlyAmericon staff

Brings past-deadline and closed projects back into the list. Off by default, and never available to the public.

By default a project drops out of the lists once its deadline passes or it is marked Closed. Ticking this brings them back, which is what you want when looking up a job that has already been bid.

ImportantThis control is staff-only, and the restriction is enforced on the server rather than by hiding the checkbox. A signed-out visitor cannot see closed projects by editing the page address.

The Public and Private badges

On the right of each row in a project listAmericon staff

Says whether this project is on the public calendar or reachable only through its invite link.

The badge on each row is the fastest check that a project is where you meant to put it. Public means it is listed on the bid calendar and its link needs no access code. Private means it appears nowhere public and only the invite link opens it.

NoteRows in the Private Projects list carry the access code in their links already, so clicking straight through from the list works — you are seeing what the invited contractor sees.

Selecting rows

The checkbox on each row, staff onlyAmericon staff

Tick rows to export just those. Shift-click a second box to take everything in between.

Tick individual projects, or use the checkbox in the toolbar to take the whole page at once.

Shift-click selects a range, the way a file manager or mail client does: tick the first row, then shift-click the last, and everything between them follows.

A bar appears at the foot of the list once anything is ticked, showing the running count with Export CSV and Clear.

NoteSelection covers the page you are looking at. To export beyond it, use Export all in the toolbar instead.

Exporting to CSV

The toolbar above the list, and the bar at the footAmericon staff

Two exports: "Export all" takes everything matching your filters across every page; "Export CSV" in the selection bar takes only the rows you ticked.

There are two, and the difference matters:

  • Export all N in the toolbar carries your live filters, not a list of rows. It exports everything matching — including the rows on pages you never clicked through to.
  • Export CSV in the selection bar exports exactly the rows you ticked, and nothing else.

The file downloads immediately and opens in Excel or Google Sheets. It carries the project name, location, deadline, visibility, trades and assigned staff.

ImportantAn export of the private list contains invite-only project details. Treat the file the way you would treat the invite links themselves.

Row density

The toolbar above the list

Compact fits roughly a third more rows on screen. Your choice is remembered on this device.

Comfortable is the default. Compact tightens the rows so more fit on screen, which is worth it when working through a long list.

The setting is stored in your own browser and applies to every list on the site. It is per-device, not per-account, so choosing it on your desktop does not change your phone.

Section 6

Creating a project

The Create Project form takes a project from nothing to live in one submission. The name, city, state, bid due date and the two people responsible for it are required — everything else can be added later in the editor.

How the form is organised

Create Project, down the leftAmericon staff

Overview, Schedule, Contacts, Photo and Plan files are five views onto one form. Nothing is created until you press Create project.

The sections are the same five the project editor uses, in the same order, so creating a project and later editing it are the same screen doing the same work. Moving between sections changes nothing and creates nothing.

Each entry in the rail says what is still needed — "2 to fill" against a section means a required field in it is empty — and the line under the rail counts every required field across all five, including sections you have not opened.

NotePlan files are the exception to "nothing happens until you press Create". They upload as you drop them, so a large drawing set is already transferred by the time the rest of the form is filled in; they attach to the project when it is created.
ImportantLeaving the page with a part-filled form prompts first, and nothing is kept. A project that has not been created cannot be resumed later.
The Create project form. The section rail on the left shows Overview 4 to fill, Schedule 1 to fill, Contacts 2 to fill, Photo optional and Plan files, above an amber line reading "7 required fields are still empty". The Overview panel on the right holds project name, city and state, and a Public or Private choice presented as two cards.
The create form, empty. The rail counts what is still needed per section, and the line beneath totals it across sections you have not opened yet.

Project name

Create Project, Project detailsAmericon staff

This is the heading contractors see on the calendar, in the lists and in the subject line of the invite email. Name it the way the drawings do.

The project name appears in more places than anything else on the form: the calendar marker, both project lists, the details page heading, the invite email subject, and the entry in a contractor's own calendar once they subscribe.

Use the name that appears in the title block of the drawings. A contractor who receives an invite for "Devil's Lake Villas" and finds "DL Multi-Unit Phase 2" on the drawings has to stop and check whether they are the same job.

City and state

Create Project, Project detailsAmericon staff

Both are required. State is what the list filters run on, so it has to be picked from the list rather than typed.

City is free text and appears under the project name in the lists. State is a dropdown because it drives the state filter — a typed abbreviation would make the project invisible to anyone filtering.

Visibility

Create Project, Project detailsAmericon staff

Public puts the project on the bid calendar for anyone to find. Private keeps it off every public surface and reachable only through its invite link.

This is the most consequential field on the form. It can be changed later, but changing it later means a project was briefly in the wrong place.

PublicPrivate
On the bid calendarYesNo
In the Public Projects listYesNo
In the subscribable calendar feedYesNo
Details pageOpen to anyoneNeeds the access code in the link
Plan filesDownloadable by anyoneNeeds the access code in the link
ImportantSetting a project public publishes its drawings to the open internet. If in doubt, create it private — moving a project to public later is a deliberate act, and moving it back does not un-publish what was already downloaded.
NoteNone of the above happens while the project is still a draft. Visibility decides where a project goes when you publish it; until then it goes nowhere. See "Drafts and publishing".

Drafts and publishing

Create Project, Project detailsAmericon staff

Every project starts as a draft, visible only to Americon staff. Publishing is a separate button, and it is the moment the project becomes real to anyone outside.

A project has two independent settings, and they answer different questions. Confusing them is the commonest mistake on this screen, because "private" sounds like it means "not published" and it does not.

What it decides
Draft or publishedWhether the project exists to anyone outside Americon at all.
Public or privateWhere it goes once published — the open bid calendar, or invite links only.

So a private published project is live: invited contractors can open it and take the plans. A public draft is not live at all — it is not on the calendar, and nobody outside can reach it even with the link.

While a project is a draft:

  • it is off the bid calendar, the subscribable feed and the public lists,
  • its plan files will not download, for anyone,
  • it sends no deadline reminders,
  • invitations cannot be sent — the console refuses, because every link in that email would open the "not found" page,
  • and it appears on the staff boards with a Draft chip, and in the "Unpublished drafts" tile on the dashboard.

Publishing is one button at the top of the project screen. On a project marked public it asks first, and states exactly what is about to become visible, including how many plan files.

NoteUnpublish, on the Delete panel, takes a live project back to a draft without losing anything entered. Anyone already invited loses access until it is published again — which is the point, but tell them if a bid is in progress.
ImportantA draft is safe, not finished. Nothing chases you about one: if a job is written up and never published, it will sit there past its own bid date. That is what the red "Unpublished drafts" tile on the dashboard is counting.

Trades

Create Project, Project detailsAmericon staff

The work packages you want priced. Contractors filter the project lists by these, so a project with none set is harder for the right bidder to find.

Tick every trade you want bidding. They appear on the project row in the lists and drive the trade filter.

Leaving them empty does not break anything — the project is still listed and still on the calendar — but a contractor who filters to their own trade will not see it.

Bid due date and time

Create Project, Project detailsAmericon staff

Required, and it drives almost everything: the calendar position, list sort order, the reminder emails, and when invite links expire.

Pick the date and time from the picker rather than typing, so the value stored is unambiguous. This one field drives:

  • where the project sits on the bid calendar,
  • the sort order of both project lists — soonest first, always,
  • the "closing today" and "closing this week" counts on the dashboard,
  • the reminder emailed to plan holders as the deadline approaches,
  • the entry in a contractor's own calendar,
  • and when the project's invite links stop working.
NoteThe deadline is shown to contractors with its time zone spelled out. A bid deadline is contractual, and "2:00 PM" means different things in Denver and Chicago.
ImportantMoving a bid date after invites have gone out is exactly what the plan-holder notification is for. Change the date, then tell the people holding the plans — they will not check the site again on their own.

Estimated start and completion

Create Project, Project detailsAmericon staff

Optional. Shown on the project page so a bidder can judge whether the schedule suits their book.

Both are optional and neither affects the calendar or any filter. They appear on the project details page, where they answer a question a contractor asks before deciding whether to price the job at all: can we actually staff this, when it runs?

Leave them blank rather than guessing. A date on the page reads as a commitment.

Project manager and coordinator

Create Project, Project detailsAmericon staff

Both are required when the project is created. They are named in the invite email, and are who a contractor reaches by replying to it.

Both are chosen from portal accounts. They are named on the project details page and in the contractor invite email under "Submitting your bid".

An invitation the portal sends carries a per-project reply address, so a contractor answers by replying to the message and their answer is filed against the job before it reaches either of you. The invitation names the two of you without printing your addresses — a contractor who writes to an address directly is writing somewhere the project record cannot see. There is no longer any way to copy that invitation out and send it from your own mailbox — see The contractor invite email for what replaced it.

  • Project manager — responsible for the project and the final bid decision.
  • Project coordinator — handles invites, documents and contractor questions.

Naming them is not a permanent assignment — either can be reassigned at any time in the project editor. The requirement is that a project never starts life with nobody answerable for it, because a project sent out with no contacts gives a contractor with a question nobody to ask.

NoteIf no account holds one of the two roles yet, the form says so and lets the project through without it — a site with no coordinators would otherwise be unable to create any project at all. Assign the role in User Management, then set the contact in the editor.

Project photo

Create Project, Project photoAmericon staff

Optional. Used as the image on the project page and in listings. Unlike plan files, this one is public.

A rendering or a site photograph. Optional, and purely presentational.

ImportantThe photo is deliberately not access-protected, because it is shown on public listings. Never use a drawing sheet or anything confidential as the project photo, even on a private project — upload it as a plan file instead.

Uploading plan files

Create Project, Project plan filesAmericon staff

Drag files in or browse for them. Large sets upload in pieces, so a big drawing package will not fail part-way through, and you can keep adding while one is still going.

Drop files onto the box or use Browse. Multiple files at once are fine, and each shows its own progress.

Large files are uploaded in chunks rather than in one request, which is what makes a several-hundred-megabyte drawing set survive a slow office connection. If the sign-in token expires during a long upload, it is renewed automatically rather than failing the upload.

  • Files land in a protected location, not in the public media library.
  • Nothing is served to anyone until the project's visibility and access code have been checked.
  • Plan files can be added, replaced and removed later in the project editor.

Dropping more while one is uploading is fine and expected — it is how this form is normally used. The second drop joins the queue behind the first rather than competing with it. Save is the only thing an upload holds; it comes back as soon as everything has finished.

TipA file dropped anywhere on the page — not just on the dashed box — is caught. If you miss, the page tells you where the box is instead of doing anything drastic.
NoteThat safety net matters more than it sounds. A file dropped on a page that is not expecting one makes the browser navigate to it: the tab leaves for the PDF, and everything typed into the form so far goes with it. On the create form, where the file list renders below the box and quickly becomes the thing that looks like the drop area, that is very easy to do.
ImportantDo not close the tab while an upload is running. You will be warned first, but a part-uploaded drawing set is not attached to anything.

Section 7

Editing a project

Opening any project as staff gives you the editor: the same page a contractor sees, with everything editable. It is divided into sections down the left, because a project with fifty drawings is otherwise one very long page.

The section rail

Project editor, down the leftAmericon staff

Overview, Schedule, Contacts, Photo, Plan files, Invite email and Delete. Everything except Invite and Delete saves together with one Save button.

The sections are views onto one form, not separate forms. Moving between them changes nothing and saves nothing; the Save changes button at the foot commits every section at once.

Two sections are separate because they act immediately rather than on save:

  • Contractor invite email — copying and regenerating the access link happen there and then.
  • Delete this project — its own confirmation, its own action.

Each entry in the rail carries a short summary of what is in it, so you can see the file count or the visibility without opening the section.

The project editor. A banner across the top says the project is a draft and offers a Publish button. Below it, the section rail on the left lists Overview, Schedule, Contacts, Photo, Plan files, Invite email and Delete, each with a summary of its contents, above a green line reading "Every required field is filled in". The Overview form fills the rest.
The editor, on a project that is still a draft. Note the rail: Contacts 2 named, Plan files 0 files — the summaries mean you can see what is missing without opening anything.

The readiness line

Project editor, at the foot of the section railAmericon staff

Live count of required fields still empty, across every section — including ones you have not opened.

It reads "Ready to save" when every required field is filled, and names how many are still empty when they are not. It checks all sections, not just the one on screen, so a missing city on the Overview section is reported while you are looking at Plan files.

Unsaved changes

Project editorAmericon staff

Leaving the page with edits in progress prompts first. Filter and search boxes do not count as edits.

If you have changed anything and try to leave, the browser asks before discarding it.

The trade filter, the file filter and the section you are on are excluded from that check — narrowing a list to find something is not an edit, and being asked to confirm it would train people to click through the warning without reading it.

When two people edit the same project

Project editor, on saveAmericon staff

If the project changed while you had it open, your save is refused rather than applied — so nobody's work is overwritten without being seen.

Nothing stops two coordinators opening the same project, and on a deadline afternoon two people on one job is normal. What is checked is the save.

When you press Save changes, the portal compares the project as it stands against the project as it was when your page was drawn, field by field. If nothing you could overwrite has moved, the save goes through exactly as it always has — which is the ordinary case, and you will never see any of this.

If something has moved, the save is refused. Not partly applied, not applied with a warning: nothing is written at all, so the other person's work is intact and yours is not half-landed somewhere.

The notice names who changed the project, how long ago, and which fields your save would have put back to their earlier values. Then:

  • The form reloads showing the project as it now stands — their version, not yours.
  • Make your change again on top of it and save. The second save goes through.
  • Any plan files or a photo you had queued were not attached. Add them again.
NoteThere is deliberately no save anyway button. Overwriting would throw away work you cannot see, and a confirmation dialog in front of that is still throwing it away — it just makes it your fault. Redoing one field is the cheaper half of the trade.

The fields watched are the ones the form writes: project name, city, state, visibility, bid due date, estimated start and completion, project manager, coordinator, scope of work, trades, and which plan files are on the project. Actions with their own buttons — publishing, closing bidding, regenerating the access link — write one thing each and cannot silently undo an edit, so they are not gated.

Who can see this project

Project editor, OverviewAmericon staff

Switching between Public and Private changes the invite link below immediately, but nothing is live until you save.

Two cards rather than a dropdown, because the two options do entirely different things and a closed dropdown explains neither.

Selecting one updates the invite link shown below it straight away, so the link and the setting can never disagree on screen. A warning appears under the link until you save, because until then the new link is not live.

ImportantMoving a project from private to public publishes its plan files to anyone. Moving it from public to private removes it from the calendar and the feed, and from then on only the invite link opens it — but it does not retrieve anything already downloaded.

Scope of work

Project editor, OverviewAmericon staff

A line or two on what is actually being bid. It is the field a contractor uses to decide whether to price the job at all.

A name, a city and a deadline tell a contractor where and when. They do not tell them whether the work is theirs. This is the field that does, and it is why an electrical sub can rule a job out — or in — without downloading a set of drawings first.

It appears in three places, from this one box: on the project page under Scope of work, in the invitation email above the estimated dates, and in the plain-text version of that email for contractors whose mail client shows no formatting.

  • Say what work is included, and roughly how much of it — "Interior demolition and metal stud framing, 12,000 sf".
  • Say the conditions that change a price — prevailing wage, night or weekend phasing, an occupied building, a hard completion date.
  • Leave the specification to the drawings. Two thousand characters is the ceiling and far more than the field needs.

Blank lines start a new paragraph and single line breaks are kept, so a short list of trades on separate lines reaches the contractor on separate lines.

NoteIt is optional. Left empty, the block is dropped from the project page and from both versions of the invitation — no heading, no empty space, nothing that reads as a field somebody forgot.
ImportantEditing it does not tell anyone already invited. Scope is not one of the changes that raises the "out of step" notice, so if it changes materially after invitations have gone out, use Notify these plan holders on the Plan files section.

The trade picker

Project editor, OverviewAmericon staff

The work packages you want priced — contractors filter the project lists by these. Type in the filter box to find one; filtering only hides rows, so a ticked trade scrolled out of view is still ticked and still saves.

The list runs to several dozen trades, so it has a filter box and a running count of how many are selected. Clear all appears once anything is ticked.

NoteThe filter hides rows; it never removes them from the form. Whatever is ticked saves, whether or not it is on screen when you press Save.

Schedule

Project editor, ScheduleAmericon staff

The bid deadline and the estimated construction dates. Changing the deadline moves the project on the calendar and re-times its reminders.

Changing the bid deadline takes effect everywhere the moment you save: the calendar, the list order, the dashboard counts, the subscribed calendar feeds, and the reminder schedule.

ImportantIt does not tell anybody. Contractors holding the plans will not check back on their own — use Notify these plan holders on the Plan files section to tell them the date moved.

Closing bidding early, and reopening it

Project details, beside the status badgeAmericon staff

The bid date closes a project on its own. Close bidding ends it sooner — when a job is awarded or pulled — and Reopen bidding undoes that.

A published project closes itself when its bid date passes, and that stays true whether or not anybody touches these buttons. What they add is the ability to end bidding at a different moment from the one on the calendar.

Managers and coordinators both have them. They are one press with no confirmation, because either one undoes the other.

What decides open or closed
Left aloneThe bid date. Checked hourly, in both directions.
Closed or reopened by handYour decision, until somebody changes the bid date.
Bid date changedThe new date takes over again, straight away.

That last row is the way back. If a bid was closed early and should now run to a new deadline, set the new date in Schedule — it reopens the project and closes it again on the new date, with no second button to remember.

Closing bidding, early or on time, means the project:

  • leaves the bid calendar, the open lists and the subscribable feed,
  • appears on Closed Projects, where it can still be read and exported,
  • sends no further deadline reminders, and drops out of the staff digest,
  • and shows Bidding closed to any contractor who opens it.

Closing sends no email by itself. What it does instead is ask: close a bid ahead of its published date and the project screen names the firms who are working on it and offers the notice, already written, with a They already know button beside it. Both answers are recorded; neither is the default.

The offer goes to the people we know are spending money on the job:

  • everyone who took the drawings,
  • plus any firm that answered We are bidding — they may never have downloaded anything here,
  • minus anyone who said they were not bidding, and anyone who has unsubscribed.
NoteSay why it closed. The draft states the facts — when bidding ended, what the published date was, who to ask — and deliberately stops there, because "awarded" and "postponed" are very different things to a bidder and only you know which this was.
ImportantNobody is told automatically, and the question is only put when a bid closes EARLY — a bid that reaches its own date is not news. Invite links keep working either way: closing a bid does not take the drawings away from anyone already holding one.
NoteReopening a bid whose date has already gone leaves the project taking bids with a deadline that reads as past. Nothing will close it again on its own while it is in that state, and the editor says so until you give it a new date.

Neither button appears on a draft. Nothing is bidding on a project that has not been published.

Replacing the project photo

Project editor, PhotoAmericon staff

Uploading a new photo replaces the current one. The photo is public even on a private project.

Choosing a file replaces the existing photo when you save.

ImportantProject photos are served publicly so they can appear in listings. Never put a drawing or anything confidential here — that is what plan files are for.

Managing plan files

Project editor, Plan filesAmericon staff

Every attached file has a Keep box. Unticking one removes the file from the project when you save — nothing is removed until then.

Each attached file shows its name, type and size, with a Keep checkbox. Files stay attached while their box is ticked; unticking one and saving removes it from the project.

Past six files the list gains its own filter box and a Keep all button, and past eight it gets its own scroll so it cannot swallow the page.

ImportantFiltering the file list hides rows, it does not detach them — but a row you unticked and then filtered out of view is still unticked and will still be removed on save. Use Keep all if you lose track.
NoteThere is deliberately no "remove all" button. The restorative bulk action is worth a button; the destructive one sitting two pixels away from it is not.

File versions and revision labels

Project editor, Plan files, on each fileAmericon staff

The version number is automatic — v1 on upload, v2 the next time a file of the same name lands. The label is free text on top of it: write whatever the drawing's own title block says.

Every plan file carries a version and a date, both set by the portal. A file uploaded for the first time is v1. Upload a file with the same name again and it becomes v2, then v3, and so on. You never type the number.

A replacement takes the old file's place in the list rather than sitting beside it, and keeps its displayed name, so nobody is ever shown two rows called "A-201.pdf" and left to guess. The file it replaced leaves the list but is not deleted — the save confirmation says so each time it happens.

On top of the version, each file can still carry a revision label: free text, and optional. "Rev B", "Addendum 2", "2026-08-04 reissue". Construction has no single convention, and the label on the portal has to match the label in the title block of the drawing itself. The paper wins — so when a label is filled in, it is what contractors see in place of the version number.

There are two ways to issue a revision, and both end in the same place:

  • Press Replace on the file's row and pick the new drawing. This states outright which sheet is being superseded, so it works no matter what the new file is called. Use it whenever the reissue arrives under a different name — "A-201_RevB.pdf" for "A-201.pdf".
  • Upload a file with the same name. Picked up on its own, no button needed. Unticking Keep on the old row in the same save works too and counts as the same replacement — you never have to save twice.
NotePressing Replace always wins. If the file names also happen to match something else, the row you pressed Replace on is the one that gets superseded.
ImportantUpload a drawing whose sheet number is already on the project under a different file name — "A-201_RevB.pdf" beside "A-201.pdf" — and it is added as a separate file at v1, with the save telling you so. It is not linked automatically: guessing wrong would drop a live drawing off the bid list. Press Replace on the row it supersedes to link them.
NoteContractors are only shown version numbers once something on the project has actually reached v2. Before that the column would read "v1" on every row, which is noise. Your own list here always shows them.

A row that has been revised gains an earlier issues line you can open. Every superseded drawing is listed there with its version, its label, the date it was replaced and a link to the file itself. Nothing is ever deleted, and this is where it stays.

NoteThere is no Restore button, on purpose. Putting an old drawing back is issuing it again: download it from the history and upload it through Replace. That keeps the history a straight line, so months later it still answers which sheet was live in which week.
ImportantOnce a drawing is superseded, its old download link stops working for contractors — anyone following one from an email sent before the reissue is sent to the current set instead, and told why. Staff links keep working. This is the main thing that stops a bid being priced off a superseded sheet.
NoteAfter uploading a revision, tell the plan holders. The notification email lists what changed automatically, and now does so whether or not a label was typed.

Download all

Project details, Plan files

Packages every plan file into one ZIP. A large set takes a minute to compress — leave the tab open while it works.

Rather than downloading forty drawings one at a time, this compresses the whole set into a single ZIP.

  • You are asked to confirm first, because a large set is a large download.
  • A progress message appears while the archive is built.
  • Do not close or refresh the tab while it is preparing.
  • If it takes longer than expected you are told so, rather than being left with a page that appears stuck.
NoteOn a private project the ZIP goes through the same access check as the individual files. Someone without the invite link gets nothing.

The contractor invite email

Project editor, Contractor invite emailAmericon staff

A ready-made, branded email built from this project. Preview it here, then send it from the portal so the job can say who was asked.

The email is built from the project: name, location, bid deadline with its time zone, the plan documents, the manager and coordinator with their email addresses, and a button to the project — carrying the access code when the project is private. Where the directory knows the contact, it opens by name.

Choose who to invite is the way out of this panel. You pick contacts and groups, see who is excluded and why before anything goes, and the project remembers who was asked. Each firm gets their own link, so an opening can be attributed to a company, and replies reach the project manager rather than the website.

The preview shows exactly what will be sent, clipped to a readable height. Show the whole email expands it. This is the cheapest place to catch a wrong bid date.

The Contractor invite email panel on a draft project. An amber warning says every link below is dead until the project is published. Beneath it a "Choose who to invite" button sits beside the words "Nobody has been invited yet", above a preview showing the invitation subject line and the top of the branded email.
The panel on a project that has not been published yet — which is why it opens with the warning rather than the preview. Publish first, then invite.
NoteThis panel used to offer Copy formatted email and Copy subject, for pasting the invitation into Outlook. Both are gone: a message sent that way carried no per-firm link, honoured no unsubscribe, and left the project unable to say who was asked to bid — the record you need if the job is ever audited for good-faith solicitation. What people used them for is now Add a note to this invitation on the review step, and Message on a firm’s row for a word to one contractor.
NoteA contractor who receives this can add the bid deadline straight to their own calendar from the project page, without an account.

Choosing who to invite

Project editor, Contractor invite email, Choose who to inviteAmericon staff

Pick contacts by group, trade or name, and add addresses by hand. Nothing is sent until you have seen the review page.

The list opens narrowed to the trades on this project, shown as chips above it. Remove a chip to widen the list; clear them all to see every contact. The line above the list always says how many contacts the filters are hiding, so the list is never quietly shorter than you think.

  • Tick rows to choose them. Shift-click picks a range.
  • The list follows your typing. There is no Apply to press — narrow the search or take a chip off and the rows underneath change, along with the count and the pager. The filtering is done on the server, so Select all matching still means every contact behind the page and not the fifty on it.
  • Ticks travel with you. Search again, turn the page, remove a chip, come back from the review — whoever you have ticked stays ticked, and anyone the current view no longer shows is listed under Also selected at the foot of the list, where they can be unticked. To take everything the filters match in one go, Select all matching is still the faster control.
  • Groups and trades narrow together: picking the group "Southern Wisconsin regulars" and the trade "Concrete" gives you the concrete subs in that group, not both lists added together.
  • Addresses typed into the box at the bottom are invited and added to the contact list, so nobody has to retype them next time.

Contacts who cannot be written to still appear, greyed, with the reason in place — already invited, unsubscribed, or a dead address. They are shown rather than hidden so that "why didn’t Bob get it?" is answered while the list is still in front of you.

NoteSomebody in two chosen groups, or in a group and typed in by hand as well, is invited once. The duplicate is counted on the review page so you can see it happened.

The review step

Project editor, Contractor invite email, after choosingAmericon staff

What pressing Send would actually do, before it does it: who receives an invitation, who is excluded, and why.

These recipients are outside contractors on a live bid. A send reaches all of them at once and cannot be recalled, so everything the portal knows that you do not gets a page of its own first.

  • First invitation — firms that have not been told about this project.
  • Revised plans — firms already invited, being told that the drawings or the bid date have moved since. They get the invitation again under a heading saying why.
  • Already invited — nothing has changed for them, so they are left alone.
  • Unsubscribed or bounced — addresses we may not or cannot write to.
  • Listed twice — reached through more than one route in this selection, and invited once.

Add a note to this invitation puts a paragraph of your own into the invitation itself — *“Addendum 2 is already posted”*, *“we are targeting a GMP by the 30th”*. It goes to every firm listed above, so it is for something they all need to know.

ImportantIt is not the place for a word to one firm. *“Bob, we would especially like your number on the sitework”* typed here goes to all of them. Use Message on that firm’s row in Who has been invited, or narrow the send by trade first and let the note speak to that trade.

Send a test to myself first sends the real message for this real project to your own address only — including your note. It is the cheapest way to catch a wrong date or a missing drawing, and it leaves your selection intact.

NoteThe numbers are worked out again at the moment you press Send. If somebody unsubscribes in between, the count you are told afterwards is the one that actually went.

The last step names them. Under the count, Where each one went lists every firm in that send with what became of its message beside it: Waiting while the queue is still working through them, Server accepted once it has gone, and anything that came straight back sorted to the top. It is one send and not the whole history of the job — the full list is Who has been invited — and Server accepted means the same thing here as it does on that screen: the receiving server took the message, which is not the same as somebody reading it.

When invitations will not go out

Invitation screen, at the top of both stepsAmericon staff

Invitations are held until the bid mailbox has been read once, so every firm on a job is given the same reply address. One press by an administrator clears it for good.

Invitations cannot go out yet at the head of the invitation screen means one thing, and it is not a fault on this project: the bid mailbox has never been read successfully, so the portal will not print a reply address it cannot yet prove anybody is collecting.

It is drawn on the step where firms are chosen and again on the review, deliberately early — the cost of it appearing late is an afternoon spent building a list of four hundred that cannot be sent. While it stands, Send cannot be pressed, and Send again on a single firm's row is refused for the same reason.

The remedy is one press by an administrator: Tools → Americon Bid Mailbox, then Read the mailbox now. It has to succeed once and is never asked for again. Nothing is being switched on — the mailbox is simply proving it can be read before four hundred contractors are told to write to it.

ImportantIt refuses rather than warns because the mistake cannot be undone. A job whose firms hold two different reply addresses has half its contractors replying somewhere nobody reads, and unread mail does not bounce — the first anybody would know is a bid that never arrived.
NoteA site with no bid mailbox configured at all is not held up. There is no reply address to get wrong, invitations go out with a reply pointing at the people assigned to the job, and the portal files nothing on its own. The gate is only about the half-configured state in between. See Who the message comes from, and where replies go.

Writing to one firm

Project editor, Who has been invited, the Message link on a firm’s row; Reply on a message in the bid mailboxAmericon staff

A message to a single invited contractor, sent from the portal so it is on the record.

For the thing you would otherwise open Outlook to write: *“We would especially like your number on the sitework package”*, or a question about a bid that has not arrived. It goes to that firm alone.

Reached from Reply on a contractor’s message, it answers that message properly: the question is shown above the box so you are not answering from memory, the subject is filled in as a reply to theirs, and what they wrote is quoted underneath your answer. In their mail client it arrives in the same conversation rather than as a separate email — so a firm that asks three things about one job sees one thread, not three loose messages.

Sending an answer this way marks the question answered — you do not have to go back and press anything. That is the whole reason to answer from here rather than from Outlook: the press that gets forgotten is the one that leaves a question sitting on the worklist with a deadline running against it.

Sent from the portal, it carries their own link to the project, replies reach the project manager, and it lands on that firm’s delivery history with whatever the mail server said about it. Sent from Outlook, none of that is true and there is nothing three weeks later saying you wrote to them at all.

What you type is kept. The firm’s row on Who has been invited gets a Messaged mark, and opening it shows the message in full with the date and your name on it — so "did we tell them the sitework was split out?" is answered from the project rather than from somebody’s Sent folder.

  • The project name, the bid date and their link are added for you — write only your own words.
  • It does not re-send the invitation. Send again on the same row does that.
  • It does not change what the firm has been told about revised plans, so it will not remove them from the list of people who still need to hear about a change.
NoteA firm that has unsubscribed or whose address has bounced cannot be written to here, and the screen says which. That is not a technicality to work around by emailing them directly — an unsubscribe is a decision the contractor made.

Telling contractors about a change

Project editor, and the invitation screenAmericon staff

When the bid date moves or plans are revised, the project says how many invited firms have not been told. Sending is still your decision.

The portal records what each firm was told: the bid due date, and the plan files with their revision labels. When either changes, everyone invited under the old version is counted as not yet told, and the project says so until somebody acts.

It is never sent automatically, deliberately. Saving a project is not a decision to email forty-seven firms — a revision is often uploaded in pieces over an afternoon, and each save would be its own blast. An unwanted email cannot be recalled.

  • Correcting a spelling, a description or a job title tells nobody. It is not something a contractor would do anything differently about.
  • A moved bid date and revised or added drawings both count.
  • Removing a drawing is reported but does not re-invite anyone: there is nothing for them to act on.
NoteRe-sending picks up firms added to a chosen group since the first invitation. They have never seen the project, so they get the full invitation and are counted under First invitation.

“The deadline they were shown cannot be confirmed.” On a few older projects the reason given is this rather than a change. It means the firm was invited before the portal kept a change trail, so there is no record of which bid date was in front of them — not that anything has moved.

  • It is shown because the honest answer to “have they been told?” is that we cannot say, and a record that quietly assumed either way would not be worth having.
  • Contractors never see that wording. If you do re-send, the invitation reads simply as updated.
  • Re-sending clears it: the firm is then recorded against the project as it stands today.
NoteIt appears once per affected project and does not come back on its own. Leaving it is a legitimate choice — on a job whose deadline has not moved in months there is nothing to tell anyone.

Trade coverage

Project editor and the invitation screenAmericon staff

Whether the trades this job is tagged for have anybody invited, and anybody bidding. It only appears when something is missing.

Every other count on this portal is measured in firms. A job needs trades, and five trades covered out of six looks identical to six out of six on every other screen — forty-seven invited, all healthy, and nobody at all pricing the electrical.

This is the only check that asks whether the bid will actually work. It compares the trades on the project against the trades on the contacts who were invited.

  • Nobody has been invited for X — a mistake, and one you can fix this afternoon by inviting people. Shown as a warning.
  • No contact in the directory does X — nobody to invite yet. A different problem with a different remedy, so it is worded differently: add contacts, or the trade tag is wrong.
  • Invited but nobody bidding yet — a risk, not a mistake, and usually just week one. Shown quietly, because a screen that shouts at the normal state of a bid on its first day is a screen people learn to scroll past.

The trades that are covered are left out entirely. This panel is silent on a healthy project, on purpose — it has to still be legible on the morning it says something that matters.

NoteA project with no trades tagged gets nothing at all rather than a complaint. Tagging is optional, plenty of jobs are one trade or none, and nagging about it would only teach people to tag projects to silence the nagging.
ImportantA firm that declined does not cover its trade. They answered, which is useful, but they are not going to price it.

Who is actually bidding

Project editor, Who has been invitedAmericon staff

Contractors answer “are you bidding?” from their invitation email. Silence is not a decline — it usually means nobody has opened it yet.

Every invitation carries a Will you be bidding? panel under the plan documents button, with two answers in it: Yes, we are bidding and Not this one. The answer lands on the invitation record against that firm, and the line above it counts the three states.

  • Bidding — expect a number from them, and they are told first when anything changes.
  • Not bidding — they have passed on this one job. They stay on the invitation list and will hear about the next.
  • No answer — the commonest state, and not a decline. Usually nobody has opened the invitation yet.

"47 invited" is not coverage. Eleven bidding is coverage. Three days from a deadline those two numbers tell you completely different things, and before this existed both looked the same on every screen.

A contractor can change their answer at any time by following the link again — a firm that declined in week one and finds capacity in week three needs to be able to say so. Every change is recorded, so "when did they say they were out" has an answer after the job is awarded.

NoteOccasionally somebody answers who is not on the invitation list — the link was forwarded to them by a colleague. They are counted separately so the figures measured against the invitation list stay honest.
ImportantEach answer is signed for one firm on one project. Nobody can answer on another firm's behalf, and a link from one job cannot be used on another.

A contact who cannot be invited

Invitation screen, the “Fix this” link on a greyed rowAmericon staff

Bounced addresses are fixed by entering the correct one. Unsubscribes can only be reversed by the firm asking — and the note you write is the record of them asking.

A contact is greyed out and unselectable for one of two reasons, and they are not the same kind of problem. Fix this on the row opens the right remedy for whichever it is.

The address bounced. The receiving server said no such mailbox — usually a typo, somebody who has left the firm, or a domain that changed. Enter the address that is actually correct and it replaces the one on the contact.

  • Retyping the same address is refused. We have the receiving server's word that it does not work, so retyping it changes nothing.
  • The old address stays on the do-not-mail list. It still does not work, and the next person to type it by hand should get the same warning you did.
  • An address already belonging to another contact is refused, because saving it would merge the two firms into one row and the losing firm would drop out of every group it was in.

The address is right and the bounce was wrong. This does happen — a mailbox created that morning, a receiving server misconfigured for a day, a domain part-way through a move. The panel underneath clears the block, and asks you to write down how you know. That note is recorded against your name, and if mail to the address fails again it is blocked again.

ImportantDo not use that panel to get past a bounce you have not checked. It exists for addresses you have confirmed by other means; clearing one you have not costs the domain's sending reputation, which affects delivery for every other firm on every other bid.

The firm unsubscribed. There is no address field here, because nothing about the address is in question — they asked us to stop. Only they can reverse that, and only by asking.

  • If they have asked, record how: a phone call and roughly when, an email, a conversation on site.
  • Wanting them to bid is not consent. Neither is a colleague saying they are probably fine with it.
  • That note is what the portal will show if anyone ever asks why an unsubscribed firm was written to again.
NoteEverything on this screen is recorded — what was cleared, by whom, and the reason given. The suppression entry itself is deleted when the block is lifted, so the audit trail is the only thing that survives.

Your selection

Invitation screen, beside the contact listAmericon staff

A running count of what you have chosen and what it would do, so you do not have to reach the review page to find out.

The panel beside the list keeps up with what is ticked. It changes nothing and sends nothing — it is the answer to "what have I actually got here" while you are still building the selection.

  • What would happen splits the selection into firms that have never seen this job and firms already invited who would be told what has changed since. Those are different messages, and the balance between them is usually the thing worth checking.
  • Reached by shows which group chip brought in each part of the selection, biggest first. This is how you catch a chip you did not mean to leave ticked — twenty firms arriving from a group you forgot about show up here as a line with a number beside it.
  • Not selectable on this page counts the rows the list is showing but will not let you tick: already invited, or blocked. Each one is greyed in the list with its reason on the row.

Contacts added by hand appear under Reached by as "Added by hand", because a firm nobody's group named is worth being able to see.

NoteThe panel counts the page you are on. Select all matching extends the selection across every page the filters match, and the review step is where the whole set is counted and checked.

Who has been invited

Project editor, Contractor invite email, Who has been invitedAmericon staff

Every firm on this project, when it was asked, what became of the message, and whether they said they are bidding. Click a row to read everything exchanged with that firm.

This is the solicitation record for the job — the list to open when somebody asks who was invited, and the list to open when one of them cannot find their email.

The tiles across the top are where the bid stands: how many firms said they are bidding, how many said they are not, and how many have not answered. A fourth tile appears once a bid has actually been marked as received. Those figures are what tell a healthy bid from one where everybody passed — both are the same number of firms invited.

Two of the columns are easy to confuse and are deliberately separate:

  • Invited is the date this firm was brought into the bid. It never changes, no matter how many messages go out afterwards. It is the date that matters if the job is ever audited for good-faith solicitation. Underneath it is how the firm came to be on the list — the group that named it, or "Added by hand".
  • Delivery is what became of the last message to them — whether the contractor’s own mail server accepted it, delayed it or bounced it. The line under that badge counts the invitations: a firm invited in June and sent revised plans in July reads "2 invitations", with the date of the last one.

Where there is something recorded, click anywhere on the row to open that firm’s Delivery history — every message sent to them on this job, every reply, and the whole exchange in order. The firm’s name, the delivery badge and the messaged mark are all links to the same screen, so ctrl-click or the middle button opens it in a new tab and you keep your place in the list.

NoteClicking Send again, Message or Mark bid received does what that control says and nothing else — the row only takes a click that landed on none of them, and it never interrupts you selecting an address to copy. A firm with nothing recorded yet is not a link at all, because the screen behind it would have nothing to show.

A Messaged mark under that line means somebody here has written to this firm in their own words, and it says when and how many times. It is only on the rows it is true of, so it is worth scanning for. Open it to read what was said.

ImportantThe two counts are separate, and adding them gives the total mail. Invitations counts what the portal composed — the invitation and any revision notices. A message you typed does not raise it, so a firm invited once and written to twice reads "1 invitation" with a "Messaged 2 times" mark beside it, not "3". They are kept apart deliberately: the count that tracks invitations also tracks what a firm was last told about the drawings, and letting a note about sitework pricing advance that would quietly drop them off the list of firms who still have not heard the plans moved.

Bidding? is what that firm has told us, from the buttons in their own invitation: bidding, not bidding, or no answer yet. Silence is not a decline — it usually means nobody has opened it. Under that badge is Mark bid received, which records that their numbers turned up; it sends nothing, it can be undone from the same spot, and both directions are on the audit trail.

A firm with nothing marked beside its name holds the current version of the bid. Only the exceptions carry a badge there: Not told what changed means the drawings or the deadline have moved since they were last written to, and Will not receive mail means the address unsubscribed or bounced.

Send again re-delivers the invitation to one firm. Use it when a contractor deleted the email, never received it, or is holding a link that no longer opens.

  • It does not change the Invited date, and it does not create a second invitation.
  • If the plans or the deadline have moved since they were invited, the message they get says so in the first line — they are not sent a stale invitation quietly.
  • Firms who unsubscribed or whose address bounced show the reason in place of the button. That refusal cannot be overridden from here, because it is not ours to override.
  • The same address cannot be sent to twice within a few minutes. Mail takes that long to arrive, and a second copy does not make the first one faster.

Message writes to that firm on its own, in your own words — the thing you would otherwise open Outlook for. It does not re-send the invitation, and it does not change what they have been told about revised plans. See Writing to one firm.

Download the record saves the whole thing as a spreadsheet — every firm asked, every message, and every outcome. That is the version to hand to an owner or an auditor; see The solicitation record, as a file.

NoteA contractor can also ask for their own invitation back without contacting anybody — see When a contractor loses their invite link.

Proving an invitation was sent

Project editor, Who has been invited, a firm’s name or its delivery badgeAmericon staff

The whole exchange with one firm about this job — what they wrote, what was written back, when each message left and what their own mail server said.

This is the answer to the phone call that starts "we never got the invitation". It shows the address the portal wrote to, the date and time each message left, and the reply from the mail server on the other end.

The conversation about this job comes first, when there is any: what the firm wrote to the bid address and what somebody here typed back, in one list, newest at the top. That is the answer to the other question this screen gets asked — not "did it arrive" but "what did we actually tell them". Clicking a subject on a project’s Correspondence panel lands you here, on that message.

The two halves are not held the same way, and the screen says so. Our side is the prose that was typed, in full, with the date and the person who wrote it. Their side is the opening of their message: the portal records that it arrived and how it began, and the message itself, with anything attached to it, stays in the bid mailbox and is never deleted from it.

Elsewhere with this firm follows: the same exchange on the other jobs they have been invited to, so a question you are about to answer can be checked against the one they asked in March. This job is left out of it — it is already above, in full.

Invitations and revision notices are in neither list; they are the ones the portal composed, and they are in the table underneath with everything else.

The outcomes mean different things and call for different replies:

  • Accepted by their mail server — their end took the message. Ask them to check their junk folder before it is sent again.
  • Their mail server delayed it — a temporary refusal, usually greylisting or our own hourly limit. It is retried.
  • Bounced back — refused outright. The address is wrong or gone, and the right fix is a new address rather than another attempt.
  • Sending failed — the message never left us. Worth raising, and worth sending again.
Important"Accepted" is not "read". It means the contractor's mail server took the message, not that a person saw it — it can still have been filed as junk at their end. Saying more than that to a contractor is claiming something the portal cannot see.

Two lines on this screen mean the portal cannot tell you, and they are deliberately not written as failures:

  • Sent before delivery logging began — the invitation went out before the portal started recording outcomes. The invitation itself is still on the record with its date; there is simply nothing to show about its delivery.
  • No delivery record — the invitation record says a message went out after logging began, and no message was logged. Those two disagree. Raise it before promising the contractor anything.
NoteThe Invited date on the record is the fact that matters for a good-faith-effort audit, and it stands whether or not there is a delivery outcome beside it.

The solicitation record, as a file

Project editor, Who has been invited, Download the recordAmericon staff

A spreadsheet of every firm asked to bid this job and what happened to each message — the version to hand to an owner or an auditor.

The screens answer a question somebody is asking now. This answers the one asked months later by somebody who was not in the room: show me that this job was solicited widely, and show me the evidence. It downloads as a spreadsheet you can attach to an email or file with the bid tab.

One row per message, plus a row for every invited firm the delivery log has nothing for. The columns are:

  • Firm, Email and Invited — who was asked and when. The invitation date is the fact a good-faith effort is judged on, and it is in the file whether or not there is a delivery outcome beside it.
  • On the invitation record — "No" marks mail this site sent about the job that was not an invitation: a plan-holder notice, or a coordinator’s test send. They are included so the file is a complete account rather than a selection.
  • Outcome and What the mail server said — the same words the Delivery history screen uses, and the recipient’s own reply where there was one.
ImportantA firm with no delivery outcome has not been left out and was not missed. The column says why in words — usually that they were invited before the portal started recording outcomes. Exporting the delivery log on its own would have dropped those firms entirely, which is why this file is built from the invitation record instead.
NoteIf a project has more logged messages than one file can carry, no file is produced and the screen says so. A partial record is indistinguishable from a complete one once it is on somebody else’s desk.

Send everyone the new link

Project editor, Contractor invite email, private projects onlyAmericon staff

The other half of regenerating the access code: puts a working link back in the hands of everyone already invited.

Regenerating the access code stops every link already sent. This is how the firms who should still have access get a working one back.

It is a separate press rather than part of regenerating, on purpose. The usual reason to regenerate is that a link reached somebody it should not have — and re-sending automatically in the same click would mail a fresh link straight back to them. Rotate first, look at who is on the record, then decide.

  • Every firm on the invitation record is sent the invitation again, carrying the current access code.
  • The date each firm was first invited does not change.
  • Unsubscribed and bounced addresses are excluded, and you are told how many.
  • If an invitation run is still going out, this refuses rather than taking it over — starting a second run would abandon the first one part-way.
NoteTo send to some of the list rather than all of it, use Send again on individual rows in Who has been invited instead.

Invite reach

Project editor, Contractor invite email, private projects onlyAmericon staff

How many distinct people have opened the invite link. Zero opens two days before a deadline is a delivery failure, not a quiet week.

Invites are sent from a personal mail client to a distribution list, so nothing about their delivery comes back to the portal on its own. This is the one number that separates "nobody is interested" from "the mail never arrived".

It counts distinct devices that opened the link, plus when the first and most recent open happened. A stale list, a message filtered as spam, and a link pasted wrong all look identical from here — and all three are still fixable if you notice before the deadline.

  • Shown on private projects only. A public project is on the calendar for anyone to find, so its open count says nothing about whether an invite was delivered.
  • No IP address, browser or referrer is stored. A device is reduced to a one-way hash purely so one person refreshing four times counts once.
  • That list is capped, and discarded when the bid closes out.

Regenerating the access link

Project editor, Contractor invite email, private projects onlyAmericon staff

Issues a new access code and kills every link already sent. Use it when a private link has gone somewhere it should not have.

This is the revocation control. Pressing it issues a fresh access code; every invite link handed out up to that moment stops working immediately.

ImportantEveryone you already invited loses access, including contractors mid-bid. The notice afterwards tells you how many firms that is.

Once you have regenerated, Send everyone the new link appears below it. That is how the firms who should still have access get a working link back — the invitation screen will not do it, because it skips everyone already invited.

Every regeneration is recorded — who did it, when, and why — so the question "when did that link stop working" has an answer later.

A public project has no access code and nothing to regenerate; the panel says so instead of offering a button that would do nothing.

NoteThis is not the way to help one contractor who lost their email. See When a contractor loses their invite link — resending to one firm gives away nothing, and costs nobody else their access.

Deleting a project

Project editor, Delete this projectAmericon staff

Moves the project to the Trash. It leaves the calendar and every list at once and invite links stop working. An administrator can restore it.

Deleting is recoverable — the project goes to the WordPress Trash, not to nothing — which is why both staff roles are allowed to do it. You are asked to confirm, and the panel tells you how many plan files are attached before you decide.

The moment it is deleted:

  • it disappears from the bid calendar, both project lists and the subscribable feed,
  • its invite links stop working,
  • and contractors holding those links lose access to the plans.
NoteAn administrator can restore it from the WordPress Trash. If a project is simply finished rather than mistaken, Close bidding is usually the better move — it keeps the record, the plan holder list and the invite links intact, and it is one press beside the status badge.

Section 8

Plan holders and notifications

A plan holder is a contractor who has taken the drawings. Keeping that list is the only way the portal knows who to tell when something changes — and telling them is the whole reason it is collected.

Who has taken the plans

Project editor, Plan files, below the file listAmericon staff

Contractors who identified themselves before downloading, with when they took the plans and whether they have been told about changes since.

Each row is a contractor who filled in the short form before downloading: company, contact name, email, when they took the plans, and when they were last notified.

The Notified column is the one to read before issuing an addendum. "Not yet" means that contractor has heard nothing from the portal since they downloaded.

ImportantThis list is a courtesy record, not proof of identity. Anyone can type anything into the form; the email address is checked for a valid shape and nothing more. It must never be treated as verification, and it grants no access on its own.
NoteContractors may skip the form. An empty list does not mean nobody has the plans — it means nobody chose to say so.

Notify these plan holders

Project editor, Plan files, plan holders panelAmericon staff

Emails everyone holding the plans. Write only what changed — the current revisions, the bid date and a project link are added for you.

This is what the plan holder list exists for. Use it whenever a drawing is revised, an addendum is issued, or the bid date moves.

  1. Open Notify these plan holders.
  2. Check the subject, which is pre-filled with the project name.
  3. Under What changed, write only the change itself: *"Addendum 2 has been issued. Sheets A-101 and A-102 are superseded."*
  4. Press Send to myself first and read the result.
  5. Then press Send to all N.

Added to every message automatically: the current plan revisions, the bid due date, a link to the project, and an unsubscribe link. You do not need to write any of it.

NoteSend to myself first is not a nicety. These recipients are outside contractors on a live bid; a typo reaches all of them at once and cannot be recalled. The rehearsal costs one click.

Sending happens in the background in batches, so a long list does not depend on you keeping the page open. A progress line reports how many have gone and how many remain; you can leave the page and come back to it. Contractors who have opted out are skipped automatically.

Automatic reminders

Sent automatically — no control to pressAmericon staff

Plan holders are warned before their bid closes, and coordinators get a morning summary of what closes today. Both happen on their own.

Two things go out without anyone pressing anything:

  • To plan holders — a warning 48 hours before their bid closes, because the failure mode is quietly missing it.
  • To coordinators — a morning summary of what closes today and what is closing within the week, because the failure mode is a package nobody was watching.
NoteTwo days, not three. A project is badged Closing soon from 72 hours out, which is a different threshold on purpose: the badge is there to be noticed by somebody already looking at the list, and the email is there for somebody who is not. Do not read the badge appearing as a sign the warning has gone out.

Every project records which reminders it has already sent, and that record is checked before each send — so a reminder cannot go out twice even if the site's scheduler runs a job more than once.

Reminders go through the same sending path as manual notifications, which means opt-outs are honoured in both.

Section 9

The contact directory

One shared list of everyone Americon invites to bid, replacing the distribution lists that used to live in individual Outlook profiles.

What the directory is for

Contacts, from the main navigationAmericon staff

Everyone shares one list. A contact added or corrected here is corrected for every coordinator, on every job, from that moment.

Invitations used to go out from whichever distribution list the sending project manager kept in their own Outlook profile. That list was private to one person, left with them, and could not be reported on — so nobody could answer "who did we invite to this job?" a month later.

This is that list, held once and shared. Search by company, name or any part of an email address; narrow by trade, city or state; open a contact to correct it.

  • One row per person, not per company. Two estimators at the same firm are two contacts, invited independently.
  • Search is a substring — typing acm finds *Acme*, and typing the middle of an address finds it too.
  • The list follows the typing. It narrows a moment after you stop, over the whole directory rather than the page in front of you, and emptying the box puts everybody back. The *Filter* button still works and does the same thing.
  • Ticks travel with you. Contacts you have ticked stay ticked through a search, a sort, a page turn and opening a contact — and any the current filters no longer show are listed under *Also selected* at the foot of the table, where you can see them and untick them.
  • Inactive contacts are hidden by default. Switch Status to *Both* to see them.
  • Click a column heading to sort by it, and again to reverse it. The sort stays with you through the filters, the pages and opening a contact. On a phone the headings are not on screen, so the same columns appear as a row of *Sort by* buttons above the list.
The top of the Contacts directory. A heading reads "740 contacts match. Everyone here shares this list", with Groups, Trades, Import contacts and Add a contact buttons beside it. Below are search, state, city and status filters, then a grid of trade checkboxes each showing a count.
The filters at the top of the directory. The trade grid carries a count against each trade, so you can see the size of a selection before making it.

Two of those columns are worth knowing about. Location sorts by the town, because that is what the column shows — to work by state, use the state filter, which is the tool for it. Reachable starts with the problems at the top, since finding the addresses that have stopped working is the only reason to sort by it.

NoteBlank cells sort to the bottom whichever way round the column is, in both directions. A contact with no trades on it is missing an answer rather than holding an early one, and reversing a column to see the end of the alphabet should not hand you a screen of dashes instead.
NoteThere is no "my contacts". Everything here belongs to Americon rather than to whoever added it, which is the whole point of moving it out of Outlook.

What a firm has done, and what was said

Contacts, on an open contact, under the formAmericon staff

Under the details somebody typed about a firm are the two things the firm did: their record across every job, and every message to and from them.

Everything in the form above a contact is what one of us wrote down about them. The two panels underneath are the parts they wrote themselves, and they are what the page is actually opened for between bids — deciding whether to ask this firm again, or working out what to say to one that has gone quiet.

Their record with us counts across every job: how many they were invited to, how many they opened, where they said they were bidding, where they passed, and where they never answered. Bids marked received are counted on a line of their own, and only once there is one — a permanent "0 bids received" beside a firm's name is an accusation made out of a column nobody was filling in a year ago.

Under the counts, where it applies, is the sentence they add up to. Three firms can look identical in those numbers and be three different problems, so the panel says which:

  • Mail to this address is not arriving — their server has refused everything and accepted nothing. That is the address, not the firm: the wrong contact, somebody who has left, a mailbox that no longer exists. It has been counted as invited on every job in the meantime, so the coverage figures for that trade have been overstating themselves for as long as it has been wrong. Worth a phone call and a corrected address.
  • Nobody has ever opened an invitation from this address — and where the mail log shows their server accepted the mail, it says so. What happens after a server accepts a message is not something this portal can see, and the difference between saying that and not saying it is the difference between a prompt and an accusation.

Conversations is the other half: everything this firm has written to the bid address, and everything written back to them from a job, in one list in the order it happened. Each entry names the job, says whether it was marked a bid or a question, counts what was attached, and shows the opening of what was written. Older messages beyond the most recent are not listed here — they are still on the jobs they belong to.

NoteInvitations themselves are not in that list. The record above counts those, and a conversation with forty identical invitation rows in it would bury the two sentences worth reading.
NoteNeither panel is drawn when it has nothing to say — a firm invited once, or one that has never written and never been written to. That is most contacts, and a permanent empty box on four hundred screens teaches people to scroll past the place the answer appears.

The same Their record with us panel appears on the delivery screen inside the invitation console, drawn from one place so the two cannot word it differently.

The email address is the contact

Contact detailsAmericon staff

One contact per address, and the address is what identifies them. Changing it does not update a person — it makes a different contact.

A contact is identified by their email address and nothing else. Two people cannot share one address in the directory, and one person with two addresses is two contacts.

That is deliberate. You can only send one message to estimating@acme.com however many people read it, so a second row would mean inviting that firm twice.

  • A shared estimating mailbox holds one name — whoever was entered most recently. That is normal and nothing needs doing about it.
  • Somebody who changes firms gets a new address, so they arrive as a new contact. Their old one keeps its history until it starts bouncing.
  • Names are not treated as important. People spell them differently and misspell them; as long as the address is right, the contact is right.
ImportantCorrecting a typo in an address is fine and is the right thing to do. But an address that belongs to somebody else entirely is a different contact — add them rather than editing over the person who was there.

Trades, and why they come from a list

The filter rail, and on each contactAmericon staff

Chosen from a fixed list rather than typed, so a filter finds everyone. Ticking several means ANY of them, not all.

Trades are picked from a list a manager maintains, not typed in. Free-form tags look easier and fail quietly:

TypedContacts
Electricians31
Electrical12
Electric4
electrician2

Filtering "Electricians" there returns 31 of the 49 people meant, and nothing anywhere says so. A filter that quietly returns two-thirds of the right answer is worse than one that returns none, because nobody double-checks a plausible result — and the cost lands as a subcontractor who stopped being invited without anyone deciding that.

The number beside each trade is how many active contacts carry it. Read it before filtering: it tells you whether an empty screen means the filter is wrong or the trade genuinely has nobody in it yet.

NoteTicking two trades means either of them, not both. "Show me the electricians and the concrete subs" is one selection for a job needing both. Asking for people who are simultaneously an electrician and a concrete sub would return almost nobody.

A trade accumulates on a contact over time as people learn what a firm actually does. Importing never removes one — that is done here, on the contact, where you can see what you are taking away.

Getting contacts out of Outlook

Contacts → Import contactsAmericon staff

Export your contacts folder to CSV and upload it. Nothing is written until you have seen a preview of exactly what it would do.

Two ways in. Use the file unless you cannot.

  • Upload a CSV. The normal route, and the only one that carries phone numbers, companies and Outlook categories. In Outlook: File → Open & Export → Import/Export → Export to a file → Comma Separated Values, then pick the contacts folder. Google Contacts and any spreadsheet export the same shape.
  • Paste a list of addresses. For a distribution list, which is a single item stored *inside* a contacts folder rather than contacts in it — so the export either skips it or emits one row with everybody mashed into a field. Addresses that live only in the Global Address List are the same.

To get a distribution list out of Outlook: start a new message, drop the list into the To: field, press the + beside it to expand it into individual people, then select the whole field and copy. Paste that in.

NoteA pasted list is names and addresses only. Anything you paste can be filled out later from a file, or by hand on the contact.

The paste box understands what actually comes off the clipboard — Bob Smith <bob@acme.com>;, the bracketed form, bare addresses, one per line, or all on one line. A name in front of an address is kept as the contact name.

NoteRe-importing the same file is safe and is the normal way to pick up a few new names. Contacts already in the directory are matched on their email address and updated; they are not duplicated.
ImportantAn import never removes a trade and never clears a field the file does not have a column for. That is what stops a bare name-and-address export wiping the phone numbers and trades somebody entered by hand.

Taking contacts out, and moving them between sites

The toolbar above the contact listAmericon staff

The button says how many contacts it will write. That number is what your filters are showing — if it is lower than you expected, a filter is on.

Export all N writes every contact matching your current filters to a CSV — not just the page you are looking at. It opens in Excel or Google Sheets, and it is written in the shape this site's own importer reads, so it can be loaded straight into another copy of the portal.

Read the number on the button before pressing it. It is the same count as the line above the list, and it is there because the contact list opens filtered to Active. An export taken without noticing that is missing every inactive contact, and nothing in the file says so.

To move contacts from one site to the other: export here, then use Import contacts on the other site and upload the file. Contacts are matched on their email address, so re-importing is safe and updates rather than duplicates.

ImportantReconcile the trades first. A trade that does not exist on the receiving site is dropped at the door — the contacts arrive, their trades do not, and nothing reports it. Compare Contacts → Trades on both sites and add anything missing before you import, not after.

Three things deliberately do not travel with the file:

  • Status. It is in the file so you can read it, but the importer ignores it and every contact arrives Active. Deactivating a firm is a decision somebody makes on the contact, not something a spreadsheet column does silently.
  • Who has been sent what, and who opened it. That is a record of messages *this* site sent. Carrying it across would make the other site claim a history it does not have.
  • Anything you left out of the file. An import never clears a field the file has no column for, so a partial export cannot wipe phone numbers or trades already entered on the other side.
NoteThe file is named for the site it came from — americon-contacts-bidding-… or …-dev-…. Two exports in one downloads folder are otherwise indistinguishable, and importing the wrong one merges the wrong directory in.
ImportantThe file is every email address in the directory, in one document. Treat it the way you would treat the invitation links: it is fine on a company machine and it is not something to forward.

Reading the import preview

Contacts → Import contacts, after choosing a fileAmericon staff

Set which column means what, then read the sentence at the top: it says exactly how many rows would import and how many need you first. Nothing is written until you press the button.

An Outlook export has around ninety columns and you need six of them. The recognised ones are matched automatically; everything else stays on Do not import, which is the correct answer for it.

Change any dropdown and press Update the preview to see the effect. Nothing is written by that.

Read the sentence at the top of the summary first. It says what pressing the button would do — *"78 of 94 rows would be imported. 16 need a decision from you first."* It is coloured for the answer: green when the whole file imports cleanly, amber when something wants looking at, red when nothing would be imported at all. Everything below it is the evidence it was drawn from.

Then the counts, which always cover every row in the file:

CountWhat it means
New contactsNot in the directory. They will be added.
Already here, updatedMatched on their email address. Only fields that differ are changed.
Repeated in the fileThe same address twice. The first one is used and the rest are skipped — worth fixing in the file rather than here.
No usable addressNo email, or not a real one. A contact who cannot be emailed is not a contact this directory can use.
Cannot be mailedBounced or unsubscribed. Still imported, still flagged.
At our own domainsColleagues and conference rooms. Left out unless you say otherwise.

Findings appear below the counts when they apply. None of them stops the import:

  • Addresses inside our own organisation. The one finding that changes what gets written — see [[contacts-import-internal]].
  • Contacts per email domain. Not a problem, just a census. A file that is mostly one or two domains is somebody's whole mailbox rather than a bidder list.
  • Categories that are not trades yet. Outlook categories that are not on the trade list, with how many contacts carry each. This is the useful half of the trade list being fixed: add the ones worth having and import again.
  • States that were not recognised. Full names like *Wisconsin* are converted for you. Anything left over is imported with no state, so those contacts will not appear in a region filter.
  • One firm, spelled more than one way. Contacts at the same email domain filed under different company names, which makes one firm look like two everywhere. Nothing is corrected automatically — which spelling is right is your call.

Finding the rows that need you. The table lists the file in its own order, which is how you find a row again in the spreadsheet — but twelve problems among four hundred rows are invisible that way, and the table stops at a hundred. Switch it to Needs a decision to list only those, however far down the file they are.

Under the table, Copy the flagged rows opens a plain-text block: every flagged row with its address and its reason, all of them, not just the first hundred. Paste it beside your spreadsheet and work down it. Fixing the source file means the next import is clean as well, which patching contacts afterwards does not.

NoteEither decision is fine. Import now and tidy up in the directory, or fix the file and start over — whichever is less work. Nothing is written until you press the button, and starting over costs only the upload.

Why our own addresses are left out

Contacts → Import contacts, before committingAmericon staff

Colleagues and conference rooms are not bidders. They are skipped unless you untick the box.

An Outlook export is usually somebody's whole address book, so it arrives full of colleagues. The first real one tried here held 94 contacts and every single one was internal — staff at our own domains, plus three conference-room mailboxes. Not one subcontractor.

Nothing about that file is broken, which is the point. Every row reads correctly and the preview reports 94 healthy new contacts. Committing it would have put the whole company in the bidder directory, and the next project invitation would have gone to all of them.

So two kinds of address are recognised and left out by default:

  • Our own mail domains — the domain we send bid invitations from, and the domain this site runs on.
  • Microsoft 365 tenant addresses ending .onmicrosoft.com. Nobody puts one on a business card; they are room and resource mailboxes.
ImportantA room mailbox processes what it receives automatically, so replies come back from a conference room. And bulk mail from our own address to our own domain is what a spam filter is built to distrust — it damages the reputation every real invitation depends on.

Sibling companies are not detected, because nothing in the software can know which other firms are ours. Instead the preview shows a count of contacts per email domain. A file that is mostly one or two domains is somebody's mailbox rather than a bidder list, and that census is what makes it obvious at a glance.

NoteThe box can be unticked if you genuinely want a colleague in the directory — an estimator who should receive invitations, say. They are then treated exactly like any other contact.

Groups: a selection you save once

Contacts → GroupsAmericon staff

A saved set of contacts, so the same twenty firms need not be rebuilt from filters every time.

A filter answers "who is a roofer in Monroe County". A group answers "who do we actually send this to" — which is a judgement, not a query, and it is worth keeping once somebody has made it.

Name it after the selection it saves: *Southern Wisconsin regulars*, *Concrete shortlist*, *Municipal work*. Groups are optional and earn their keep once the same firms go on invitation after invitation.

There are two ways to put contacts in a group, and for anything more than one firm the first is the one to use.

  • From the contact list, in bulk. Filter to what you want, tick the rows, and use Add to group on the bar that appears. Shift-click picks a range. If the filters match more contacts than one page shows, Select all N matching takes the whole set including the pages you have not looked at. You can type a new group name straight into the bar instead of picking one — the group is created and filled in the same press.
  • From a single contact. Open a firm and tick the groups it belongs to. This is the right direction when you are already looking at one contact and know which lists it belongs on.

The count on the bar is what will be changed, and it is worked out again at the moment you press the button — so it acts on the contacts the filters describe, not on a number that has gone stale.

  • Add to group skips anybody already in it, and tells you: "12 added, 40 chosen" means 28 were already there.
  • Remove from group takes the selection out of the group. It cannot delete a contact or a group — only the membership.
  • Renaming keeps every member. The name is a label on the group, not its identity.
  • Deleting forgets the grouping and nothing else — every contact stays in the directory. It asks you to type the name first, because a group is shared and the person deleting it may be the only one who thinks it is finished with.
  • Clicking a group name shows its contacts, filtered. Adding a contact from there pre-ticks that group.
NoteUnreachable contacts can still be grouped. Filing a bounced address under *Masonry* is a filing decision, not a decision to write to them — the invitation screen still refuses to send.
NoteAn import can also put everything it brings in straight into a group, new or existing.
ImportantEvery group is shared and unowned. Anyone on staff sees all of them and can rename or delete any of them, including one somebody else built. There is no private group.

Adding and changing trades

Contacts → TradesAmericon staff

The closed list every contact is filed under. Add the ones you actually filter by.

The trade list is closed on purpose. Free text gives you *Concrete*, *concrete* and *Concrete Work* as three separate filters, and a directory where the filter misses a third of the firms is worse than one with no filter at all.

So extending it is deliberate, and done here rather than beside the checkboxes on a contact — a trade added there would look like a property of that one firm, which is how a list ends up carrying *Concrete (Baraboo)*.

ActionWhat happens to contacts
AddNothing yet. The trade becomes tickable on every contact.
RenameNothing. Every contact classified under it keeps that classification — the label changes, the classification does not.
RemoveNothing. Contacts keep the classification, so adding the trade back restores the filter exactly.

That last row is why removing a trade asks for no confirmation: it destroys nothing. Deleting a group does ask you to type the name, because that one cannot be undone.

NoteKeep the list short enough to scan. Ninety trades is as hard to use as none — and an import tells you which categories are actually worth adding, with a count of how many contacts carry each.
ImportantA contact classified under a removed trade still carries it and still shows it, so the classification is never silently lost. It simply cannot be ticked on anybody new until the trade is added back.

Inactive, and deleting

Contact details, at the footAmericon staff

Inactive is almost always the right choice: it keeps the contact and its history and takes them out of every selection.

Inactive hides a contact from the default view and leaves them out of selections, while keeping the company, trades, phone number and the record of every job they were invited to. It is reversible.

Delete removes the contact outright. There is no undo, and everyone shares this list.

ImportantDeleting somebody to stop inviting them also erases the evidence that they were ever invited — which on public work is the record that matters most. Use Inactive unless the row is genuinely junk, like a typo address that was never real.

Deleting asks you to type the contact's email address. That is on purpose: a confirmation you can click through without reading is not a confirmation, and this one cannot be undone.

NoteEvery deletion is written to the audit trail with the company, name and address, so "where did Acme Concrete go?" has an answer even though the row is gone.

Section 10

Email the portal sends

What happens after you press send: who the message appears to come from, where a reply lands, why a long send sometimes pauses, and what the portal does when an address stops working.

Who the message comes from, and where replies go

Applies to every message the portal sendsAmericon staff

Everything sends from one Americon address so it passes the receiving server's checks — but the reply goes to whoever is assigned to that project, not to the shared mailbox.

Every message leaves as Americon Construction, from a single company address. That is not a style choice: mail servers check that the sender matches the domain that authorised it, and a message claiming to be from a personal address while leaving through a different account is what lands in a spam folder.

Replies are handled separately, and where they go depends on whether the portal is reading the bid mailbox yet.

  • Once the bid mailbox is being read, every invitation carries its own reply address naming that job and that firm, so a reply files itself against the record and the people on the job are emailed that it arrived. This is the arrangement the portal is built around.
  • Before that, a Reply-To points at the project manager assigned to the project, or the coordinator if no manager is set. The contractor reaches a person; the portal has no record of it.
  • If neither is set and the bid mailbox is not being read, no Reply-To is added at all and replies go to the company address. Assigning somebody on the project is what fixes that.
NoteThat last case is not lost mail, but it is slower. Replies reaching the company address are picked up when the portal reads that mailbox and filed against the job if they can be matched to one — a detour of hours on a question that had an owner all along. See How a reply reaches the job.
NoteThe sending address itself is set in the site configuration rather than on a settings screen, so it cannot be changed by accident — and it has to match the mailbox the site actually authenticates as, or messages start failing the receiving server's checks.
ImportantA message you send from your own Outlook instead has none of this. It is invisible to the portal, no opt-out is honoured, and there is no record of it three weeks later when somebody asks whether a contractor was told.

The hourly sending limit

Applies automatically to bulk sendsAmericon staff

The mail host allows a fixed number of messages an hour. The portal counts them and pauses before hitting the ceiling, rather than being cut off partway through a list.

The mail provider caps how many messages an account may send per hour. Going over it does not queue anything — the provider simply refuses, and the account cannot send at all until the hour has passed. That has happened here before, and it is the one email failure this portal has actually had.

So the portal keeps its own count and stops short of the ceiling on purpose. A notification to a long list is sent in batches, and if the remaining budget will not cover the next batch, the send pauses and resumes on its own once the hour has rolled forward.

  • Nothing is lost when a send pauses. It picks up where it stopped.
  • You do not need to keep the page open, or press anything again.
  • Some of the budget is held back for one-off messages — a password reset, a single invite — so a large mailing cannot lock out the person trying to get an account working.
NoteIf a send seems to have stalled, look at Tools → Americon Self Check. The hourly budget has a row there showing how much is left and when it next frees up.
ImportantDo not work around a pause by sending the rest from your own mail client. The portal has already recorded who it reached; a manual send on top of that produces duplicates for some contractors and no record for any of them.

When an address stops working

Applied automatically to every recipientAmericon staff

An address the mail server rejects outright is set aside and not tried again. A temporary failure is only set aside after it repeats.

Contractors change jobs and companies fold, so addresses collected over a few years will contain some that no longer exist. Continuing to mail them is not merely useless — a sender who keeps mailing dead addresses is treated as less trustworthy by receiving servers, which starts to affect delivery to everybody else on the list.

The portal therefore watches what the receiving server says and reacts differently to the two kinds of failure:

What came backWhat it meansWhat the portal does
Rejected outrightNo such mailbox. It is not coming back.Set aside immediately. Not tried again.
Temporary failureMailbox full, server busy, greylisting.Counted. Set aside only after it happens three times.
Sending limit reachedNothing is wrong with the address.Nothing. The send pauses instead — see the hourly limit.
UnsubscribedThe contractor asked to stop.Set aside permanently.

A single temporary failure clears itself the next time that address is reached successfully, so a contractor whose mailbox was full for a day does not slowly accumulate strikes across the year.

NoteTelling the difference matters more than it sounds. A run that hits the hourly limit gets a refusal for every remaining recipient at once — and treating those as bad addresses would set aside most of a mailing list in a single afternoon.
ImportantAn unsubscribe is never undone by anyone here. That is a decision the contractor made, and the verification step below deliberately refuses to reverse it.
NoteThe portal learns most of this by reading the mailbox invitations are sent from, an hour at a time. Some of what arrives there is not a failure at all but a contractor writing back, and that is raised for a person to answer — see The mailbox invitations come back to.

Bringing a set-aside address back

Beside any contact marked as bouncedAmericon staff

A bounced address cannot simply be re-ticked. Someone has to confirm the address is right — by phone, or from a reply — and that confirmation is recorded against their name.

An address the portal has set aside is shown as such and cannot be selected for a send. Clearing that is deliberately a step rather than a checkbox, because the reason it was set aside was a mail server stating the address does not exist — and disagreeing with that on a hunch just repeats the bounce.

  1. Confirm the address independently: a phone call, a reply from the contractor, or a corrected address on a recent bid.
  2. Open the contact and use the verification action.
  3. Say briefly how it was confirmed. That note is kept.

The address becomes selectable again, and the audit trail records who cleared it, when, and what they said. If it bounces again it is set aside again — the verification is a statement about one moment, not a permanent exemption.

ImportantAn address that unsubscribed cannot be cleared this way. An unsubscribe is not a bounce and has its own separate step — see Putting an unsubscribed contact back on the list.
NoteIf the address was simply wrong — a typo, or an old one — correct the address itself rather than verifying the broken one. A corrected address is a different address, and starts clean.

Who has unsubscribed, and what happens to them

Contact directory, and Tools → Americon Self CheckAmericon staff

Unsubscribing takes effect immediately and marks the contact inactive. Nothing is deleted, and only the contractor themselves can undo it.

Every message the portal sends carries an unsubscribe link, and it works the moment somebody uses it — no waiting, no queue, nobody to ask.

Three things happen at once:

  1. The address stops being mailed, and stays stopped.
  2. The contact is marked inactive in the directory. They drop out of the default view and out of every selection, so nobody has to remember.
  3. The unsubscribe is recorded with its date, so the list can be read back later.
ImportantNothing is deleted. The contact keeps their company, trades, phone number and the record of every job they were invited to. Deleting somebody who asked to stop hearing from you would also erase the evidence that they were ever solicited — on public work, the record that matters most — and would let the next Outlook import quietly add them back with no memory of the opt-out.

The self-check page reports how many unsubscribed in the last thirty days. Read that number as a comment on what was sent rather than on the addresses: a run of them in one month usually means one mailing reached people who were not expecting it.

NoteUnsubscribing is not the same as declining one job. A contractor passing on a single bid should use *Not bidding this job* on the project — they will still hear about the next one. The unsubscribe page says so, because the commonest reason people press it is "not this one", and losing a subcontractor permanently over one job they were passing on is much the worse outcome.

Putting an unsubscribed contact back on the list

Beside any contact marked unsubscribedAmericon staff

Only when the contractor has asked. You record how they asked, and that note is kept — it is the evidence the request came from them and not from us.

A contractor who unsubscribed and later rings up wanting invitations again can be put back on. This is the only thing that reverses an unsubscribe.

  1. Open the contact.
  2. Use Opt back in.
  3. Write how they asked: *"Phoned 12 Aug, Bob asked to be re-added."* This is required.

The address becomes mailable again and the contact goes back to active in the directory.

ImportantThe note is required because it is the record of consent, not a formality. Mailing somebody after they opted out is permitted only when they subsequently asked for it — so the file has to show who asked, when, and how you know. "We wanted them to bid this job" is not that, and an empty box would leave nothing to tell the two apart eighteen months later.
NoteDeliberately separate from clearing a bounce. A bounce is an observation about an address and can be wrong. An unsubscribe is a decision a person made, and the only thing that changes it is that person changing their mind.

What was sent, and what happened to it

Recorded automatically for every messageAmericon staff

Every message the portal sends is recorded with its recipient, its project, and whether it was delivered, deferred or rejected.

Until now the portal could say a message had been handed to the mail server and nothing after that. The log records the outcome as well, per recipient, which is what makes "was this contractor actually told?" a question with an answer.

  • Accepted by their mail server — taken by the far end for delivery.
  • Their mail server delayed it — a temporary problem, or our hourly limit. It will be tried again.
  • Bounced back — refused. That address is set aside.
  • Sending failed — the message never left us.
  • Held back before sending — the recipient had unsubscribed or was already set aside.

Those are the same words the Delivery history screen uses for one firm, and the same words in the downloaded solicitation record, because they are the same outcomes — see Proving an invitation was sent.

The log is kept per project as well as overall, so the record of who was invited to price a job stays attached to the job. On a public bid that record is also the documentation of a good-faith effort to solicit widely — which is worth considerably more when it was collected automatically at the time than when it is reconstructed afterwards.

NoteA rate of failures across all sending shows up on Tools → Americon Self Check rather than needing to be watched. A healthy list produces very few; a sudden rise usually means a configuration change rather than a hundred contractors leaving at once.
NoteNothing here is deleted on a schedule. The sending record and the audit trail are both kept indefinitely, deliberately — a record that ages out is no use to the question it exists to answer, which is usually asked long after the job.

The bounce log

Dashboard, under the figures — **Bounce log**Americon staff

What came back undelivered, and every address the portal has stopped writing to. Stop mailing an address here, or put one back when you know it is good again.

Invitations are sent from a real mailbox and things come back to it — addresses that no longer exist, out-of-office replies, notices from mail hosts. The portal reads that mailbox hourly and deals with most of it on its own. This screen is the part that needs a person, and it is in two halves.

Needs a look is the queue. Each row is something the portal would not act on unaided: a delivery report whose code does not prove the address is dead, an automatic reply, a notice from a host. Two buttons clear a row — Suppress stops the portal writing to that address, Dismiss takes the row off the list and changes nothing else.

NoteSome rows carry no address at all — a report too large to be read is the usual one. Those offer Dismiss only, because there is nothing to suppress, and a button that appeared to work while doing nothing would be worse than its absence.

Not being mailed is the list itself: every address the portal is currently holding back from, why, since when, and any note. An address here is skipped on every send, on every job.

Everything on this screen is open to any coordinator or project manager. You are the one who rang the firm and was read a new address, so you are the one who can judge whether it is good again — an approval step in front of that would only be somebody else agreeing with you a day later.

There are two ways back onto the list, because there are two ways off it, and they are not the same act. The screen offers whichever one applies to that row and never both.

How it got on the listHow it comes offWhat is asked of you
Bounced — a mail server refused itClearA note if you have one. It is not required.
Unsubscribed — they asked to stopRecord consent & restoreA note saying how they asked. Required.

A bounce is an observation about an address. Observations can be wrong — a server can refuse a perfectly good mailbox for a week — so clearing one needs nothing but your knowing better. An unsubscribe is a person's decision, and the only thing that reverses it is that person asking. The note is required there because the note *is* the consent record: it is what answers "why is this firm being mailed again after opting out?" eighteen months later, when nobody remembers the phone call.

ImportantClear an address because you know it is good now, not to tidy the list. An address a server genuinely refused, put back and mailed again, teaches that server to distrust everything sent from the bid address — on every job, for months. That cost lands on invitations that have nothing to do with this firm.
NoteEvery clearing and every restore is written to the audit trail with your name, the address and the note, and the audit trail cannot be edited. That is deliberate: it is what makes it safe for this to be your decision rather than needing somebody's permission.

Refresh reads the mailbox immediately instead of waiting for the hour. It will not run twice within a minute, and if another read is already going it says so rather than appearing to do nothing. The line beside it always says how long ago the mailbox was last checked.

ImportantIf the screen says no mailbox password is configured, nothing is being collected at all. Bounces are still happening — they are simply not being recorded, so addresses that have stopped working go on being mailed. That needs an administrator.

Section 11

Questions, bids and what contractors send back

A contractor replies to an invitation and it appears on the job — the question, the bid, and the drawings that came with it. This is where that lands, who can open it, and what to do when something does not arrive.

How a reply reaches the job

Happens automatically; nothing to pressAmericon staff

Every invitation carries a reply address unique to that job and that firm, so a contractor pressing Reply lands on the right record without anybody sorting mail.

Contractors never sign in and never upload anything. They reply to the invitation from their own email, the way they would to any other message, and the portal does the filing.

That works because each invitation is sent with its own reply address — something like bid-1487-a3f9c1d2e0@bidding.americonconstructionco.com. The part after bid- names the job, and the code after it is a signature tying the address to that one firm. When a reply arrives, the portal already knows which record it belongs to.

Each invitation also carries a second address, on the same job and the same firm, behind the Send your bid button: offer-1487-a3f9c1d2e0@. That is the only difference between the two, and it is what lets the portal tell a bid from a question before anybody here has read either.

What the contractor didWhere it lands
Pressed Reply, or wrote to us freshWaiting for somebody — the queue with the deadline on it.
Pressed Send your bidCollecting with the other bids, sealed until the bid date.
NoteThe default is the safe one on purpose. A bid sent by pressing Reply lands in the queue somebody works every day and costs one click to put right; a question sent to the bid address would sit unopened until after the job closed. So silence about what a message is always means "somebody look at this".
  1. The portal reads the bid mailbox every few minutes.
  2. It works out which job the message is about — from the reply address, from the invitation it is answering, or from the sender being invited to exactly one open job.
  3. The message appears under Correspondence on that job's invitation record.
  4. The project manager and coordinator are emailed that something arrived, with a link to it.
  5. Straight after, a second pass goes back for anything attached and puts it under Offers received.
NoteThe attachments arrive a little after the message does — usually within a minute or two. That is deliberate: fetching a drawing set takes most of a minute, and doing it in the same pass would hold up every question waiting behind it.
ImportantNothing is ever deleted from the mailbox. If something goes wrong at any step above, the original message is still there to go and get.

The Correspondence panel

On a project's invitation record, above the list of firmsAmericon staff

Everything that arrived about this job, newest first, with a button to say what each message was.

The panel lists what came in: who from, when, the subject, and the opening lines. It sits above the list of invited firms because it is the part with a deadline on it — an unanswered question stops being answerable when the job closes.

Click the subject to open the whole exchange with that firm about this job — their messages and everything typed back to them, in order, with what we wrote in full — and the rest of the correspondence with them on other jobs underneath it. A row here is one line of a conversation, and one line is how a question gets answered twice, or answered against something we never promised.

It is in two sections, and they have opposite handling rules. Waiting for somebody is mail nobody here has read and questions nobody has answered. Settled, and bids collecting is everything dealt with, plus the bids, which are meant to sit there sealed until the bid date.

A message marked Sent as a bid arrived at the address behind the Send your bid button in the invitation, so the contractor has said what it is. That sorts it into the collecting section — it does not mark a receipt, and the buttons are still there to be pressed.

Each message carries three buttons the first time you see it: Bid, Question and Neither. Pressing one records what it was.

  • Bid also marks the bid receipt against that firm on the record below, so the two can never disagree.
  • Question keeps it listed as waiting until it has been answered. Answering it with Reply marks it for you; Mark answered is for the times you rang them, or wrote from your own mail.
  • Neither clears it out of the way — an out-of-office, a change of address, a note about something else.
NoteThe portal will not decide this for you. Questions arrive with drawings attached and bids arrive as a number in the body with nothing attached at all, and a bid receipt marked wrongly looks exactly like one marked rightly on every screen, for ever. One press is cheaper than that.

The line under a message says how many attachments came with it. Until the second pass has been back for them it says not fetched yet, and while the count came from only the top of the message it says at least. Both stop hedging once the whole message has been read.

Under the table, mail that named no job is offered on every project's panel. This is about this job files it here; Not for us takes it off the queue for everybody, which is the answer for a hosting notice or a mailing list that would otherwise be read past on every job.

ImportantIf the panel says The bid mailbox is not being read, stop and get that fixed. Mail sent to the bid address is still being accepted, so nothing bounces and no contractor is told — the only symptom is that answers stop appearing.

Waiting for an answer

Dashboard, the Waiting for an answer tile; and See every job on any Correspondence panelAmericon staff

Everything nobody has dealt with, across every open job, with the ones closing soonest at the top.

A job's own Correspondence panel tells you what is waiting on that job. It cannot tell you what is waiting on the job nobody opened today, and that is the one that costs a question. This screen is the same list run across every job that is open or closed within the last three weeks.

It is sorted by how much time is left, not by when anything arrived. A question that came in this morning on a job closing tomorrow sits above one from last week on a job closing in May.

Two kinds of row appear, and nothing else:

  • Nobody has said what it is — mail that arrived without saying it was a bid, and nobody here has read it. Anything might be in it, including a bid somebody sent by pressing Reply, so it waits here rather than in the pile that is left sealed.
  • Sent as a bid, nobody has checked it — it came in through the Send your bid button, so it is collecting as a bid, and no person has confirmed that. It appears here a day after it arrived, or straight away if the job is about to close.
NoteThat second row is the safety net for the opposite mistake. A contractor who uses the bid button to ask a question would otherwise have that question sitting in a pile nobody opens until the bid date. This is what puts it in front of somebody without anybody having had to suspect it.

Bids that arrived normally and that somebody has confirmed are not here. This is a list of what is owed; a screen that also listed every bid would be a screen with nothing to clear, and the four rows that mattered would go down with it.

The document count is shown on each row. A message nobody has read, carrying four documents, on a job closing this afternoon is what a bid sent by pressing Reply looks like from the outside — open that one first.

Click anywhere on a row to open that message on its job’s Who has been invited record, with the row you clicked marked. The job name and Open the job go to the same place, so ctrl-click or the middle button opens it in a new tab and you keep the list. Reply is the one link that goes somewhere else — straight to writing back to that firm.

ImportantMail that named no job at all is counted at the bottom of this screen but listed on its own. That is a third place a question can hide, and it has its own list because it is a different job: deciding which project a stranger's email is about.

Mail that did not name a job

Dashboard, under Unplaced bid mail; and on any project's Correspondence panelAmericon staff

A contractor writing fresh rather than replying gives the portal nothing to file on, so it waits on a screen for somebody to say which job it is about.

Most mail names its own job. Some does not: a firm writing from scratch, an estimator forwarding from an address nobody invited, somebody asking to be added to a bid list. The portal declines to guess, which is the right answer and a useless one on its own — so it goes on a screen instead.

Each waiting message shows a longer excerpt than the invitation record does, because the job here is to work out which project it is about, and that is often settled by a sentence in the third paragraph.

  • Attach to a job files it on that job's Correspondence panel, and goes back for its attachments.
  • Not for us removes it from this list only.
  • Never queue refuses that sender from now on, so their next message never reaches the list at all.

Most of what piles up here needs the same one-word answer — a hosting notice, a mailing list, a night's worth of spam. Tick the boxes down the left and one Not for us clears the lot; shift-click ticks a whole run at once, and the bar at the bottom says how many are chosen before you press anything.

Use Never queue for the mail that keeps coming back — a hosting notice, a mailing list, a newsletter every Tuesday. Each of those arrives as a brand new message, so taking them off the list one at a time never catches the next one. The picker beside the button offers the sender's address or everyone at their domain; pick the domain for a list that writes from no-reply@ one week and news@ the next. Anything of theirs already waiting is cleared in the same press.

NoteYou cannot refuse a firm that is in the bidder directory, and the portal will say so rather than let you. Refusing a firm it knows would lose their next fresh email, and that looks exactly like a firm who never wrote.

What is being refused is listed at the foot of the screen, with how many messages each rule has turned away and when it last did. Queue it again ends a rule — though mail that arrived while it was in force does not come back, because the portal has already read past it.

ImportantA rule only ever affects mail that named no job. A bid that identifies itself is filed against that job whoever it came from, rule or no rule.

A message you have refused stays refused. The portal never deletes mail, so it goes on reading past that message in the mailbox for ever — it just stops offering it to you again.

The same waiting mail is offered on every job's Correspondence panel, with Sort all unplaced mail leading to the full list. That is deliberate: somebody reading one job's post is the person most likely to recognise a message about it, and a queue reachable from one screen only is a queue that gets emptied once. Both buttons are there too — This is about this job, and Not for us for the ones that are about no job at all.

NoteNot for us pressed on a project's Correspondence panel clears the message for everybody, not just for that job. There is no per-job version of it, because the queue it comes off is not per-job.
ImportantDiscarding deletes nothing. The message stays in the mailbox untouched — which matters, because the one somebody misclicks is by definition the one that turns out to have mattered.

Offers received

On a project's invitation record, under CorrespondenceAmericon staff

One row per firm that has bid, with a document count. Click the firm to read their whole offer.

The panel answers one question at a glance: who has bid, and how much came with them. The filenames are not here on purpose — forty firms with three documents each would make every row three lines tall and push the worklist off the bottom of the page. Click a firm to see them.

A firm appears here for one of two reasons: somebody pressed Bid on their message under Correspondence, or the contractor sent it through the Send your bid button in their invitation. The second kind is marked not checked yet, and counted separately above the table, because nobody here has looked at it and no receipt is recorded against the firm.

NoteA question is not an offer, and does not appear here. This panel used to count everything a firm had ever sent, which meant one question read as one bid received — while the invitation row below it still correctly said No answer. Two screens, one record, opposite answers.
What you seeWhat it means
A number beside a file iconThat many documents are stored and can be opened.
NoneThe whole message was read and nothing was attached.
still arrivingThe portal knows there are attachments and has not been back for them yet. It goes straight after the message is read, so this usually clears within a minute or two.
too large to storeThe message is bigger than the portal downloads in one go. It is still in the mailbox — open it there.
could not be readSomething went wrong taking the message apart. Still in the mailbox.
no longer in the mailboxThe message was deleted from the mailbox before the attachments were fetched. Nothing this portal does deletes mail, so somebody did it by hand.

Rows needing attention are marked down the left edge, and a summary above the table counts them, so a job with one firm in trouble does not need reading cell by cell to find it.

NoteA firm that was invited and has not written does not appear here at all. This panel is what came back, not who was asked — the record below is the roll call.

Who can open a bid, and when

Enforced everywhere bid documents appearAmericon staff

Before the bid date, only the project manager and coordinator assigned to the job can open a bid, and every open is logged.

A sealed price from a subcontractor is not something the rest of the office is entitled to read while the job is still bidding. The portal enforces that rather than trusting to habit.

WhenWho can open a bid document
Before the bid dateThe assigned project manager and the assigned coordinator. Nobody else, however much else they can do on the job. Every open is written to the audit log with a name on it.
After the bid dateAnybody who can edit the job — the same people who see the tabulation. Not logged individually.

Colleagues who are sealed out still see that a firm answered and how many documents arrived. They cannot open them, and the offer screen shows them nothing at all rather than a refusal — a refusal would confirm which firm bid which job, which is the fact being withheld.

ImportantA job with nobody assigned cannot have this rule applied to it, so it falls back to anyone who can edit the job and says so on screen. Setting a manager and coordinator on the project is what turns the restriction on. Opens are logged either way.
NoteA job with no bid date set is treated as still sealed. That is the cautious direction — the alternative treats a half-finished project as though its deadline had passed.

The documents a contractor sends

On the offer screen, under each messageAmericon staff

Drawings, schedules and anything else attached to a bid, stored against the job and downloadable from the message they came with.

Documents are listed under the message they arrived with, so a covering note and the drawings it refers to stay together. Each shows its type, its name as the contractor saved it, and its size.

They are stored outside the public part of the site and served only through a link that checks who is asking. A link copied out of the address bar and sent to somebody else does not work for them.

  • PDFs and images open in the browser. Everything else downloads.
  • Signature logos and other images that are part of how a message looks are not stored as documents — otherwise a plan set of four drawings would show as seven files.
  • If a message carried more than the portal stored, it says so, and the whole message is still in the mailbox.
ImportantA document marked its contents do not match its name is worth a second look before opening. It is usually a file saved wrongly — but the portal will not guess, so it tells you instead.

What "contained, never scanned" means

Said on every offer screenAmericon staff

Nothing a contractor sends is scanned for malware. It is contained so this site cannot run it — which is not the same as safe.

There is no virus scanner here, and there is not going to be one. The free scanning services keep and share what is submitted to them, and a competitor's sealed bid is not ours to hand over.

So the portal makes a smaller claim, and it is one it can keep. Contained means:

  • The directory the files live in refuses direct web requests, three different ways over.
  • Nothing is ever written to disk under a name a web server would execute, whatever the contractor called the file.
  • Everything is handed to you as a download, except PDFs and images whose contents agree with their name.
  • The contents are inspected, and anything that disagrees with the filename is flagged next to the download rather than in a footnote.
ImportantNone of that says a file is safe, and no screen on this site will. It says nothing here will run it. Open a contractor's attachment the way you would open anything a stranger emailed you.
NoteNothing is ever refused, either. A bid silently not arriving on the one day of the year it matters, because an estimating package wrote an unusual file header, is a worse outcome than a file you were warned about.

How long bids are kept

Runs nightly; nothing to pressAmericon staff

Bid documents are deleted three years after the bid date. The record that they arrived is kept.

Three years after a job's bid date, the documents sent for it are deleted from the server. The counted-off date is the bid date, not when the file arrived, so a late question answered a fortnight afterwards belongs to the same bid as the pricing.

What survives is the record: that Dutchman Mechanical sent four documents on 14 August 2026, and what they were called. That is worth keeping for as long as the job is. The files themselves are not.

  • A job with no bid date is never swept — there is nothing to count three years from, and deleting on a guess cannot be undone.
  • Deleting a project deletes its bidders' documents with it, immediately.
NoteA document that has been deleted this way still appears on the offer screen with its name, marked as deleted. It is a fact about the bid, not a broken link.

Is bid mail arriving?

Dashboard, under the figures — **Bid mailbox**Americon staff

Answers one question: whether the mailbox contractors reply into is being read at all. Not for reading your mail — that is on the job record and the worklist.

Your correspondence is on the job's Correspondence panel and on Waiting for an answer, and the schedule keeps both current. There is nothing to press to see it, and you should never have to.

This screen is for the different question, the one those screens cannot answer: *is mail arriving at all, or has the mailbox been silent since eleven?* On a bid afternoon that is worth being able to check without asking anybody.

RowWhat to read it for
Last checkedMinutes is normal. Hours means either nobody has touched the site or the schedule has stopped.
Next scheduledIs due now is not a fault — the page load printing it is about to run it.
Read last runNought here plus a recent Last checked is a quiet mailbox, not a broken one.
Filed against a jobHow many of those the portal could place on a record by itself.
Waiting to be placedMail that named no job. It is not lost — the link goes to it.
Last errorOnly appears when there was one, and prints the mail server's own words.

Check now reads the mailbox immediately. It will not run twice within a minute, and if a read is already going it says so instead of appearing to do nothing.

NoteReading never deletes anything, and a message read before is not filed twice, so the button is safe to press as often as you like.
ImportantIf it says no mailbox password is configured, contractor replies are still arriving in the mailbox and are simply not reaching the portal. Nothing bounces and no contractor is told, so there is no other symptom. That needs an administrator, and it needs one that day.

The stage-by-stage buttons for taking the pipeline apart are not here. They are a diagnosis rather than a piece of work, and they stay on the administrator's page — see Americon Bid Mailbox.

Section 12

For bidding contractors

You do not need an account, a password, or anything installed. Everything below works from the link in your invitation email.

Telling us you are not bidding

The “Will you be bidding?” panel in your invitationBidding contractors

Passing on one job is not the same as unsubscribing. Use “Not this one” and you stay on the list for future work.

Every invitation carries a Will you be bidding? panel, just under the button that opens the plan documents. It holds two answers: Yes, we are bidding and Not this one. Either takes one tap, there is nothing to fill in and nothing to sign into, and either can be changed later by tapping again.

Saying you are not bidding tells the project manager to stop chasing you on this job. It does nothing else:

  • You stay on the invitation list and will hear about the next job.
  • You are not unsubscribed from anything.
  • You can change your mind — open the invitation again and tap the other answer.

Saying you are bidding means the project manager knows to expect a number from you, and that you are told first if the drawings or the deadline move.

ImportantIf what you actually want is to stop hearing from us altogether, use the unsubscribe link in the email footer instead. That one is permanent and we cannot reverse it from our side — you would have to ask us to put you back on.
NoteBoth answers are yours: they are signed for your address on this one job, so nobody else can answer for you and neither will work on a different project.

The project page

Where the invitation link takes youBidding contractors

Everything about the bid on one page: deadline with its time zone, location, schedule, who to contact, and the plan documents.

The page carries, in order:

  • Bid due — the deadline, with its time zone spelled out. Read that abbreviation: a 2:00 PM Chicago deadline is 1:00 PM in Denver.
  • Location — city and state.
  • Estimated start and completion — when shown, the expected construction window.
  • Scope of work — when shown, what is actually being bid, in Americon's own words. Not every project carries one; where it does, it is the fastest way to tell whether the job is yours before opening a set of drawings.
  • Contacts — the Americon project manager and coordinator by name, and one Email the project team button. Their own addresses are not printed: the button is the route that reaches both of them and lands on the job.
  • Plan files — the drawings and bid documents, with revision labels where they carry them.

Being asked who you are

Project page, above the plan files, on your first visitBidding contractors

Name, company and email, asked once. It is how we reach you if the drawings are revised or the bid date moves. You can skip it.

Before the plan files, you are asked for your name, your company and an email address. It is asked once per project and takes a few seconds.

It exists for one reason: if the drawings are revised or the bid date moves, this is how we reach you. Without it there is no way to tell you, and the ordinary result is a bid priced off a superseded sheet.

The address is used for notifications about this project and nothing else. Every message carries an unsubscribe link.

NoteSkip, just show me the files is a real button and it really works. The plans are the product; asking is reasonable, withholding them is not. But a bid priced off an old drawing costs a great deal more than thirty seconds of typing.

Downloading the plans

Project page, Plan filesBidding contractors

Click any file to download it, or use Download all for the whole set as one ZIP.

Each file shows its name, type and size. Click one to download it.

Download all packages the entire set into a single ZIP. A large drawing set takes a minute to compress — leave the tab open while it works.

Where a file carries a revision label — "Rev B", "Addendum 2" — check it against what you already have. That label is the only thing that distinguishes a reissued sheet from the one you downloaded last week.

ImportantPlan files on an invite-only project are access-checked on every download. Sharing a file link with someone outside your team will not work for them; forward the invitation email instead.

Add to my calendar

Project page, beside the bid deadlineBidding contractors

Puts this one bid deadline into Outlook, Apple Calendar or Google Calendar. No account needed.

Downloads a standard calendar entry for this bid's deadline, which your calendar application will offer to add.

The entry is stored as a fixed point in time, so it shows correctly in your own time zone rather than in ours.

NoteTo hear about future Americon bids rather than just this one, subscribe to the calendar feed from the bid calendar page. That is one click and it keeps working.

Asking a question

Reply to your invitation, or the project page under ContactsBidding contractors

Reply to your invitation email, or use Email the project team on the project page. Either reaches the people running the job and is recorded against it.

Reply to the invitation email you were sent. There is no address to copy down, no form and no login, and attachments come through as normal.

NoteA reply is treated as something that needs an answer, so it goes in front of the coordinator straight away. Your bid itself has its own button — see Sending your bid below. Sending a bid by reply is not a problem and nothing is lost; it just means somebody here opens it before the bid date to see what it was.

If you no longer have the invitation, the project page carries Email the project team under the two names. It opens your own email with the address already filled in and goes to the same place.

Either way the message is filed against that project and the firm it came from, so it reaches the project manager and the coordinator without depending on one person being at their desk. That is why neither of their own addresses is printed anywhere: a message sent to one of them directly is one nobody else on the job can see.

There is no message form on the site and no account to sign into — everything goes through ordinary email.

Sending your bid

The “Send your bid” button in your invitation emailBidding contractors

Press it, attach your proposal, send. It opens your own email — there is nothing to log into and nothing to upload.

Send your bid in the invitation opens a new message in your own email program, addressed for you. Attach your proposal and anything that goes with it, and send it the way you would send anything else.

It arrives against the right job and the right firm on its own, and stays sealed until the bid date — only the project manager and coordinator running that job can open it before then.

That address belongs to this job and your firm, and it does not expire. Keep it, write it down, or forward the invitation to whoever is pricing the work — it still files correctly weeks later, from any of your addresses.

NoteUse a plain reply for questions and anything else. Replies are treated as needing an answer and go in front of the coordinator straight away, which is what you want when you are asking something.

Sent your bid by replying instead? Nothing is lost and nothing needs re-sending. It reaches the same job; somebody here just opens it to see what it was.

ImportantThere is no upload form on the site, and there never will be. Your bid goes by email, and nobody at Americon will ever ask you to sign in to send one.

Section 13

User management

The only route to portal accounts. This site blocks the WordPress Users screen, so everything to do with accounts happens here.

The account list

User ManagementAmericon staff

Every portal account with its role, last sign-in and status. Search by name or email, or filter by role or status.

Shows name, email, role, last sign-in and whether the account is active or suspended, with an Edit link on each row.

Search matches names and email addresses. The role and status dropdowns narrow further, and Clear filters resets everything.

Choosing a role

User Management, when creating or editing an accountAmericon staff

Project Manager and Project Coordinator currently hold identical permissions. Pick the one that describes the job, not the access.

Both staff roles can create, edit and delete projects, see private projects, manage plan files, send invites and export lists. The role records what someone is responsible for; it does not currently restrict what the software allows.

Administrator adds account management and access to the WordPress admin. Keep the number of administrators small — and never let it reach zero, since only an administrator can create another one.

Adding an account

User Management, Add accountAmericon staff

Name, email, username and role. Leave "Email a set-password link" ticked so the person chooses their own password.

All five fields are required. Two are worth care:

  • Email — used for sign-in, password resets and every message the portal sends them. It has to be one they actually read.
  • Username — first initial plus last name, e.g. jsmith. It cannot be changed afterwards.

Leave Email a set-password link ticked. The account is created with no password and cannot be signed into until somebody sets one, so the email is the way in. Untick it only when creating an account ahead of time — and remember that somebody then has to trigger that email later.

Suspend, or delete?

User Management, editing an accountAmericon staff

Suspend when somebody leaves — sign-in stops, everything they did stays on the record. Delete only removes an account created by mistake.

Almost always suspend.

SuspendDelete
Can they sign in?No — refused with a clear messageNo, the account is gone
Their audit historyKept, still attributed to themRows become an anonymous user number
Projects they createdUntouchedMust be reassigned
Reversible?Yes — Restore accessNo
Use it whenSomeone leaves, or access must stop nowThe account was created in error

A suspended account shows a Suspended badge in the list and on its own page, along with who suspended it and why. Restore access puts it back with its original role.

NoteYou cannot suspend or delete your own account, and you cannot remove the last administrator. Those buttons are disabled rather than allowed to lock everyone out.

Last sign-in

User Management, in the account listAmericon staff

When this account was last used. Hover for the exact date and time.

Shown as a relative time — "3 days ago" — with the exact timestamp available on hover.

An account that has never been used reads as such, which usually means the set-password email was never acted on.

Section 14

Administrator tools

Under Tools in the WordPress admin, for administrators only. You should not need these in normal use — they are for setting the site up and for answering questions after the fact.

Americon Site Setup

WordPress admin, Tools → Americon Site SetupAmericon staff

Checks that every page the portal needs exists at the right address, and creates any that are missing.

The plugins provide the features; they do not provide the pages. This tool lists every page the portal needs, what each one holds, and whether it is correct — then creates or repairs the missing ones in a single press.

Run it on a fresh install, after moving hosts, or whenever a header button leads to a "not found" page.

Afterwards: open Settings → Permalinks and press Save once, then run the self-check.

Americon Self Check

WordPress admin, Tools → Americon Self CheckAmericon staff

Verifies plan-file protection, scheduled jobs and role integrity, and says plainly what is wrong rather than that something is.

Confirms the things that fail silently: that plan files are genuinely unreachable without an access check, that the reminder and notification schedules are registered, and that roles and capabilities are intact.

Run it after any deployment or plugin change. It is designed to name the cause, not merely report a failure.

NoteYou no longer have to remember to open this page — it also runs every night on its own and mails administrators when something is wrong. See Being told when the site breaks.

Being told when the site breaks

Arrives by email; nothing to openAmericon staff

The self-check runs nightly and mails administrators when it stops passing, plus a weekly all-clear. Silence on a Monday means something is wrong with the mail, not that everything is fine.

The checks described above were, for a long time, run only when somebody happened to open the page. So the portal could detect a dead schedule, a broken mail login, or plan files that had stopped being protected — and would sit on that discovery until an administrator went looking. The way anyone found out was a contractor ringing up.

Two things close that gap, and they are deliberately independent of each other.

  • The nightly digest. The self-check runs on a schedule. Administrators are mailed when it starts failing, when what is failing changes, and once a week regardless — so a working alarm proves itself weekly rather than only at the moment you need it.
  • The heartbeat. A scheduled task outside the site calls a URL on it. This exists because the digest runs on the site's own scheduler, and a scheduler that has died cannot report its own death — every scheduled job stops, no invitation leaves the queue, no reminder goes out, and the only symptom is silence.
ImportantA monitor cannot be the thing it monitors. That is the whole reason the heartbeat is driven from outside, and it is why the weekly all-clear matters: an alarm that only ever speaks up when there is bad news is indistinguishable from an alarm that is broken.
NoteThis is administrator-only and needs nothing from managers or coordinators. It is written down here so that if a coordinator asks "would we know if invitations had quietly stopped sending?", the answer is yes, and this is how.

Americon Bid Mailbox

WordPress admin, Tools → Americon Bid MailboxAmericon staff

Where an administrator proves the bid mailbox can be read, and watches a message land rather than waiting on a tick. Reading it once is also what releases held invitations.

The mailbox contractors reply into reads itself every few minutes, and a message that arrives with drawings on it has them fetched and the job team told within seconds of being read. None of that needs anybody on this page. It is here for two moments: proving the mailbox can be read at all, and standing over it when something has not turned up.

The table is one question in seven parts, read top to bottom — is it configured, when did it last run, when does each stage run next, what did that run do, how were the messages matched to jobs, what is still waiting, and how much room the stored documents have left.

RowWhat to read it for
Last readHow far behind the mailbox is. Minutes is the normal state; hours means either nobody has touched the site or the schedule has stopped.
Next, on its ownWhen each of the three stages runs unaided. Is due now is not a fault — the page load printing it is about to run it.
That runWhat the last read did, counting separately what was filed, what could not be placed, and what had been read before. A run that saw nothing new and a run that could not see the mailbox therefore do not look alike.
How they were matchedBy the reply thread, by the project address, or by the sender alone. The last is the weakest of the three, and is only used when the sender is invited to exactly one open job.
Waiting, in totalMessages that named no job. They are not lost — see Mail that did not name a job.
Notices owedJobs holding correspondence nobody has been emailed about yet. Normally nought.
Documents storedWhat the stored bid documents use, against what this portal allows itself and what is left on the server.

Three buttons run the stages by hand: Read the mailbox now, Fetch waiting documents now, and Send any notices owed. The first is the one to reach for — a read that files anything asks the other two to run immediately after, so one press usually does all three.

A read that fails prints the mail server's own words rather than a summary of them. "Could not read the mailbox" is equally true of a wrong password, a wrong host, a firewall and an expired certificate, and only the server can say which of those it was.

NoteReading never deletes anything, so the button can be pressed as often as you like. A message that has been read before is recognised as such and is not filed twice.
ImportantIf the page says the mailbox is not configured, mail sent to the bid address is still being accepted and is accumulating unread. Nothing bounces and no contractor is told, so there is no symptom to notice. The credentials belong in wp-config.php on the server — not in the copy in the repository, which is never deployed.

The mailbox invitations come back to

WordPress admin, Tools → Americon Mailbox — the queue itself is on the dashboardAmericon staff

Invitations are sent from a real mailbox, and things come back to it. The portal reads it hourly, sets aside the addresses proven dead, and raises anything a person wrote for somebody to answer.

Four kinds of thing arrive at the address invitations are sent from: reports that a message could not be delivered, out-of-office replies, notices from the mail host, and replies from contractors who pressed Reply instead of using the links in the email. The last of those is a person asking a question about a live bid.

The portal opens that mailbox every hour and reads fifty messages at a time, so a mailbox that has been filling for a year is worked through steadily instead of in one run.

What arrivedWhat the portal does with it
A delivery report naming a mailbox that does not existSets the address aside on its own, and removes the message.
A delivery report meaning anything elseCounts it as a temporary failure or raises it for a look. Never sets an address aside on a guess.
An out-of-office reply, or a notice from the hostRaises it for a look, and removes the message.
Anything written by a personRaises it for a look and leaves it in the mailbox, so the whole message can still be read and answered.

Nothing is deleted that was not understood. A message the portal cannot identify is assumed to be somebody writing to us, and tidying those away as it passed would mean pointing an automated process at a mailbox holding months of correspondence and destroying it on the first run.

The queue itself -- what is waiting, and the buttons to clear it -- is on the dashboard under Bounce log, where coordinators can reach it. This page is the mailbox behind it: whether it can be signed into, when it was last read, and what that read did.

It lists the same rows, each saying which of these it is — Somebody wrote to us, Automatic reply, Failed, but not proof the address is dead, and so on. Read the mailbox now checks immediately rather than waiting for the hour. Dismiss clears a row once it has been dealt with, and Stop mailing it sets the address aside where a reply makes clear it should be.

ImportantThis is a queue somebody has to open. A contractor who replied to an invitation is sitting in it, and the portal shows only the first few lines of what they wrote — the row says Still in the mailbox — read it there because that is where the actual message is. The queue keeps the most recent 300 and drops the oldest beyond that.
NoteThe mailbox password is set in wp-config.php. Without it the feature is inert — it does nothing at all, and the self-check page reports that rather than leaving it looking healthy.

How plan files are protected

Applies to every plan file on the siteAmericon staff

Plan files are stored outside the public folder and served only after the project's visibility and access code have been checked.

Plan files are not ordinary media. They are stored outside the publicly readable uploads folder, and every request for one is checked against the project's visibility and access code before a single byte is sent.

That matters because gating the *page* is not enough on its own — a file at a public address can be fetched directly by anyone who has, or guesses, its URL, and no amount of page-level permission checking ever runs.

ImportantProject photos are the deliberate exception: they are public so they can appear in listings. Never upload a drawing as the project photo.

Section 15

Reference

Shortcuts, the exact meaning of the words the site uses about deadlines and visibility, and a glossary.

Keyboard shortcuts

Anywhere on the site — press ? for the list

Press ? to see the shortcuts available on the page you are on. "g" then a letter goes somewhere; "/" jumps to the search box.

Deliberately few, and following the conventions already used by Gmail, GitHub and Linear.

gd
Go to the calendar dashboard
gp
Go to public projects
gv
Go to private projects (staff)
c
Create a project (staff)
/
Jump to the search box
?
Show the shortcut list

For a chord, press g, release it, then press the second letter within about a second.

NoteThe list shown by ? only offers what actually works on the page you are on — the calendar view has no search box, so / is not listed there. Shortcuts never fire while you are typing in a field.

How deadlines are described

Everywhere a bid date appears

Deadlines always carry their time zone, and "closing soon" means inside 72 hours everywhere on the site.

  • Closing soon means within 72 hours of the deadline. The calendar's amber markers, the quick filter and the reminder emails all use that same number.
  • Closing today means before midnight tonight, in the site's own time zone.
  • Closing this week means within the next seven days.
  • Time zone is always printed beside a deadline. A bid deadline is contractual, and "2:00 PM" means different things in Chicago and Denver.

Calendar entries you download or subscribe to are published as fixed points in time, so your own calendar converts them to your clock correctly.

Public and private, exactly

Set per project

Public projects are on the calendar, in the public list and in the subscribable feed. Private projects are on none of them and need the access code.

SurfacePublic projectPrivate project
Bid calendarVisible to everyoneVisible to staff only
Public Projects listListedNever listed
Private Projects listNot listedStaff only
Subscribable calendar feedIncludedNever included
Details pageOpen to anyoneAccess code required
Plan file downloadsOpen to anyoneAccess code required
CSV exportStaff onlyStaff only

A project created before visibility existed and never edited counts as public. A project whose status is anything other than Open is kept off the public feed until somebody decides it belongs there.

NotePrivate access codes expire 30 days after the bid deadline.

Glossary

Terms used throughout the portal

The words this site uses for things, and what each one means here specifically.

TermMeans
Access codeThe long code carried in a private project's invite link. Anyone holding it can open the project and download its plans.
Bid dueThe deadline for submitting a bid. Drives the calendar, the sort order, the reminders and link expiry.
Closing soonWithin 72 hours of the bid deadline.
Invite linkThe address to send contractors. For a private project it carries the access code.
Plan filesDrawings and bid documents attached to a project. Access-checked, unlike the project photo.
Plan holderA contractor who identified themselves before downloading the plans, and who can therefore be told when something changes.
PrivateOff every public surface. Reachable only through the invite link.
PublicOn the bid calendar, in the public list and in the subscribable feed.
Revision labelFree text on a plan file matching the drawing's own title block — "Rev B", "Addendum 2".
StaffAdministrator, Project Manager or Project Coordinator.
SuspendedAn account that cannot sign in, but whose history and projects are intact.
TradeA work package wanted on a project — electrical, mechanical, sitework. Contractors filter by these.