Skip to main content

Using the Legistar integration with PublicInput

This guide explains how Legistar integrates with PublicInput. It focuses on what administrators need to know to configure, maintain, and troubleshoot Legistar syncing.

Written by McKenzie
Updated today

What the Integration Does

PublicInput automatically imports information from your Legistar system, so you don't need to manually recreate meetings. The integration can:

  • Import committees/boards (called Bodies in Legistar)

  • Import meetings for those committees

  • Import agendas and agenda items

  • Keep those items updated every 20 minutes

  • Protect meetings that are actively happening so they aren't overwritten

Once set up, the sync runs automatically, and you can trigger manual syncs if needed.


How to Set Up the Integration

Navigate to: Customer Settings → Integrations → Legistar

You will enter:

  • Legistar Client Name (your Legistar instance)

  • Optional API Token (some Legistar environments require this)

  • Auto-import toggle (automatically create projects for each Body)

  • Days to Sync Into the Past (controls how far back PublicInput looks)

  • Destination Department for new projects

What Happens When You Save Settings

  1. PublicInput checks that it can connect to Legistar.

  2. Your settings are saved.

  3. A full sync begins (committees, meetings, agendas).


Sync Behavior

Automatic Syncs (Every 20 Minutes)

PublicInput continuously pulls updated data from Legistar.

Manual Sync

You can click Sync Now at any time to force an immediate refresh.

Project-Level Syncing

PublicInput only syncs meetings for committees linked to existing PublicInput projects.


What Data Gets Imported

Meetings

Imported as Events and include:

  • Meeting title – The name of the meeting as it appears in Legistar

  • Date & time – The scheduled start date and time

  • Committee the meeting belongs to – Which Legistar board/committee the meeting belongs to (mapped to the matching project in PublicInput)

  • Legistar identifiers – The unique IDs Legistar provides for the meeting (used for syncing)

  • Additional metadata from Legistar – Such as online/stream status, video information, and other source details used to keep the meeting updated

Committees / Boards

If Auto-import committees is turned on, PublicInput will also create a matching board/project for each committee in your chosen department. Once a committee is linked to a board, PublicInput starts pulling in that committee's meetings and agendas into that board.

Agendas

Imported as structured PublicInput agendas with:

  • Sections

  • Items

  • Notes

  • Attachments (metadata only)


Agenda Import Settings

The Legistar integration imports agenda items (called "EventItems" in Legistar) into PublicInput meeting agendas. Two key settings control how items are imported and organized:

  1. Import All Agenda Items — Controls which items are imported from Legistar

  2. Field to Group Items into Sections — Controls how imported items are organized into sections

These settings are configured under Customer Settings → Integrations → Legistar.

"Import All Agenda Items"

This toggle controls whether PublicInput imports only items linked to a Legistar "Matter" or all items on the agenda.

Off (Default)

Only agenda items that are linked to a Matter record in Legistar are imported. This is the standard behavior and works well for jurisdictions that associate each agenda item with a Matter (motion, resolution, ordinance, etc.).

Best for: Most Legistar customers where agenda items are linked to Matter records.

On

All agenda items are imported, regardless of whether they have a linked Matter. Formatting artifacts like "PAGE BREAK" and "E N D" are automatically filtered out.

Best for: Jurisdictions that use Legistar's EventItems as standalone agenda entries without linking them to Matters. When this is off, those items are invisible to PublicInput.

What gets filtered: Items with the titles "PAGE BREAK", "E N D", or blank/empty titles are automatically removed during import. These are Legistar formatting artifacts used for PDF generation and have no value as agenda items.


Field to Group Items into Sections

When "Automatically create agenda sections in PublicInput" is enabled, this dropdown controls how imported items are organized into sections within the PublicInput agenda.

Default (Uses best available field)

Groups items by their Matter Type field from Legistar (e.g., "Resolution", "Ordinance", "Report"). This is the same behavior as the "Group" option.

Example result:

  • Resolution — Resolution approving contract with vendor X, Resolution authorizing purchase of...

  • Ordinance — Ordinance amending zoning code section 12.3

  • Report — Quarterly budget report, Annual audit findings

Best for: Jurisdictions that categorize their matters by type and want sections to reflect those categories.

Group (EventItemMatterType)

Groups items by the Legistar EventItemMatterType field. This is the Matter Type associated with each agenda item.

Each unique MatterType value becomes a section. Items sharing the same MatterType are grouped together.

Example: If your Legistar instance uses Matter Types like "Consent", "Discussion", "Public Hearing", and "Presentation", each becomes a section in PublicInput.

Best for: Same as Default. Use this when you explicitly want to group by Matter Type rather than relying on the system default.

Item Status (EventItemMatterStatus)

Groups items by the Legistar EventItemMatterStatus field (e.g., "Approved", "Pending", "Tabled").

Each unique MatterStatus value becomes a section. Items with the same status are grouped together.

Example result:

  • Approved — Items that have been approved

  • Pending — Items awaiting action

  • Tabled — Items deferred to a future meeting

Best for: Jurisdictions that want their PublicInput agenda organized by the current status of each item, rather than by category. Useful when the agenda structure should reflect where items are in the legislative process.

None (No grouping)

All items are placed in a single default section with no section headers.

Items appear as a flat list in the order they were received from Legistar. No section organization is applied.

Best for: Simple agendas that don't need section divisions, or when you prefer to manually organize sections in PublicInput after import.

Infer from Title (AI-powered)

Uses artificial intelligence to automatically identify which items are section headers and which are agenda content, then groups items under the appropriate sections.

How it works: When the agenda syncs, PublicInput sends the list of item titles to an AI model that analyzes the text and classifies each item as either a "section header" (a heading that organizes the agenda) or a "content item" (an actual agenda item, procedure, or topic). Items are then grouped under the section header that precedes them.

Example: Given these raw Legistar items:

  1. Invocation

  2. Pledge of Allegiance

  3. I. PRESENTATIONS

  4. General public comment procedures

  5. IV. CONSENT CALENDAR

  6. All matters are approved by one motion unless held

  7. County Operations

  8. Public Safety

  9. VI. SEPARATE MATTER

  10. II. GENERAL PUBLIC COMMENT

The AI identifies items 3, 5, 9, and 10 as section headers and produces:

  • (Preamble) — Invocation, Pledge of Allegiance

  • I. PRESENTATIONS — General public comment procedures

  • IV. CONSENT CALENDAR — All matters approved by one motion..., County Operations, Public Safety

  • VI. SEPARATE MATTER

  • II. GENERAL PUBLIC COMMENT

Why use AI instead of a fixed rule? Different jurisdictions format their agendas differently. Some jurisdictions use Roman numerals ("I. PRESENTATIONS"), others use ALL CAPS ("RESOLUTIONS"), ALL CAPS with colons ("REPORTS OF COMMITTEES:"), or letters ("A. Regular Session"). The AI handles all of these conventions without needing custom configuration per jurisdiction.

AI Section Guidance (optional): When using the AI option, an additional text field appears where you can provide hints to help the AI make better classification decisions for your specific jurisdiction. For example:

  • "Department names like County Operations and Public Safety are sub-items, not section headers."

  • "Committee names are section headers. Items starting with 'A resolution approving...' are agenda items."

  • "Items in ALL CAPS followed by a number range (e.g., 'BOARD OF SUPERVISORS 1-17') are sub-section headers, not top-level sections."

This guidance is optional. The AI works well without it for most agendas, but it can improve accuracy for jurisdictions with unusual formatting.

Fallback behavior: If the AI service is temporarily unavailable, items are imported into a single default section (same as the "None" option). The sync does not fail — items are always imported regardless of whether section classification succeeds.

Cost and performance: The AI classification adds a small amount of processing time to each sync (typically 1-3 seconds per meeting). Agendas with more than 100 items skip AI classification and fall back to flat import to ensure reliable performance.


Recommended Configurations

Jurisdiction Type

Import All Items

Section Grouping

Notes

Standard Legistar (items linked to Matters)

Off

Default or Group

Most common setup

Status-focused workflow

Off

Item Status

Good for tracking legislative progress

Standalone items (items NOT linked to Matters)

On

Infer from Title (AI)

Required when items lack Matter links

Simple agenda

Off or On

None

Manual section organization in PublicInput

Custom AI guidance needed

On

Infer from Title (AI)

Add guidance text for unusual formatting


How Updates Work

PublicInput checks Legistar for updates during every 20-minute sync cycle. A meeting will update automatically unless:

  • The meeting is currently live, or

  • The meeting starts within the next 30 minutes

If the meeting is outside this protected window, PublicInput will refresh:

  • Meeting start time

  • Meeting title

  • Agenda sections and items

Updates only run when something in PublicInput differs from Legistar.


Live Meeting Protection

To prevent accidental overwrites during active meetings, PublicInput will not update any meeting that:

  • Is happening now, or

  • Starts within 30 minutes

This protects in-progress agendas and meeting content. PublicInput will resume normal updates 30 minutes after the meeting ends.


Removing the Integration

Deleting the integration:

  • Removes the connection

  • Archives imported bodies, meetings, and agendas

  • Does not delete any manually created meetings or user-generated content


Frequently Asked Questions

Q: What happens to existing agenda items when I change the section grouping setting?

A: The new setting applies on the next sync. Existing items are re-organized into sections based on the new grouping logic. No items are deleted.

Q: Can I manually edit sections after they're created by the sync?

A: Yes. Sections created by the sync can be renamed, reordered, or modified in the Meeting Admin page. However, the next sync may re-create or update sections based on the current setting.

Q: What is a "Matter" in Legistar?

A: A Matter is Legistar's term for a legislative item — a resolution, ordinance, motion, report, or other formal action. Each Matter has properties like Type, Status, and File Number. Some jurisdictions link every agenda item to a Matter; others use agenda items as standalone entries.

Q: How do I know if my jurisdiction needs "Import All Agenda Items" enabled?

A: If your PublicInput agenda shows few or no items after a Legistar sync, but the Legistar website shows a full agenda, your jurisdiction likely doesn't link items to Matters. Enable "Import All Agenda Items" to bring in all items.

Q: Is there an additional cost for the AI-powered section grouping?

A: The AI processing cost is negligible (fractions of a cent per meeting sync) and is included in your PublicInput subscription. There is no additional charge for using this feature.

Q: Can I preview what the import will look like before syncing?

A: Yes. On the Legistar connection settings page, click the Test Import button. This shows a side-by-side preview of raw Legistar items and how they would be organized into sections, without making any changes to your meetings.


Troubleshooting

Missing Meeting

Check:

  • Whether it falls outside the "Days to Sync Into the Past" window (set via the Integrations tab). PublicInput only imports and updates meetings within the time range you specify in the 'Days to Sync Into the Past' setting. Any meeting older than that window will be skipped during syncs.

  • Whether it belongs to the correct committee


Agenda seems incomplete

By default, PublicInput only imports agenda items that are linked to an official legislative Matter in Legistar (such as a bill, resolution, ordinance, or other formal agenda item). If your jurisdiction uses Legistar EventItems as standalone agenda entries without linking them to Matters, enable the "Import All Agenda Items" toggle under Customer Settings → Integrations → Legistar to bring in all items.


Updates aren't showing

The meeting may be live or near-live (30 minutes). If you need to make a change during this time frame, you can edit fields temporarily from the committee board page in PublicInput.


What happens when it adds committees I don't want?

That just means you'll see extra committee boards in PublicInput:

  • You can safely archive or hide boards you don't use.

  • Going forward, you can turn off Auto-import and instead:

    • Let the integration bring in committees in the background, and

    • Only link the specific committees you care about to boards you actively manage.


Unauthorized or Connection Error

Your environment may require an API token.

Did this answer your question?