Ellipse Gradient for Header

Granicus Integration Guide

Integrate Granicus products such as GovDelivery and Legistar with enterprise systems through product-specific REST APIs, scheduled workflows, and selected callbacks or file interfaces.

Granicus integration options at a glance

Granicus integration capabilities vary by product and tenant, with REST APIs serving as the principal integration mechanism. The Legistar Web API can expose meetings, matters, bodies, people, and related document references, while GovDelivery APIs may support subscribers, topics, and messages subject to product access. Selected products may provide callbacks, webhook-style notifications, bulk operations, imports, exports, or document URLs, but these capabilities should be confirmed for the specific account. Authentication may use API credentials, API keys, HTTP authentication, or product-specific options. Martini can consume these APIs, schedule polling workflows, receive documented callbacks, transform JSON, apply business rules, and deliver synchronized data to enterprise applications.

Integration pointSupported by Granicus?Common use casesHow Martini supports it
REST APIsYesREST is the principal Granicus integration mechanism. Legistar provides a documented Web API, and product-specific APIs may support subscribers, topics, messages, meetings, matters, people, bodies, and related resources.Martini can consume Granicus REST endpoints from workflows, handle authentication and pagination, map JSON responses, apply business rules, and expose REST APIs for downstream systems.
AuthenticationYesAuthentication varies by product and may use API credentials, API keys, HTTP authentication, tenant configuration, and permissions assigned to an integration account.Martini can store credentials in secrets or environment configuration and apply product-specific headers, credentials, and authorization settings without embedding them in workflow logic.
Webhooks / outbound callbacksLimitedSelected Granicus products may provide callbacks or event notifications, but broad coverage across products and objects was not confirmed.Where documented, Martini can expose a REST endpoint or webhook workflow to receive notifications, validate them, retrieve current data, and process them idempotently. Scheduled polling remains the general fallback.
Bulk / async / batch APIsLimitedProduct-specific bulk imports, exports, or batch processing may be available, particularly for communications data; operation semantics must be confirmed.Martini can orchestrate batch requests, poll documented job status, process partial failures, checkpoint long-running work, and route rejected items for review.
File / attachment APIsLimitedLegistar-related records may include document metadata or downloadable references for agendas, minutes, legislative documents, and other files.Martini can retrieve documented file references, transform metadata, route content to storage or document platforms, and preserve source identifiers and relationships.
Scheduled synchronizationYesScheduled polling is the broadly applicable approach for Legistar changes and for products without documented outbound notifications.Martini can invoke workflows on a schedule, use bounded lookback windows or modification filters, checkpoint progress, and perform idempotent upserts.
GraphQL APIsNot confirmedNo generally applicable official Granicus GraphQL API was confirmed for the reviewed products.Martini can consume GraphQL APIs generally, but a Granicus GraphQL endpoint should not be assumed or configured without product-specific documentation.
SOAP APIsNot confirmedNo current vendor-wide Granicus SOAP API was confirmed.Martini supports SOAP consumption generally, but SOAP should be used only if a product-specific Granicus contract or legacy document confirms it.

How Granicus exposes data and business events

Granicus REST APIs

REST is the principal integration mechanism to investigate across Granicus products. The Legistar Web API provides documented access to civic-meeting resources, while GovDelivery and other products may expose product-specific resources subject to account access and entitlement.

Martini implementation pattern

Martini implementation pattern: a workflow calls the applicable Granicus REST endpoint, manages product-specific authentication and pagination, maps JSON into a canonical model, applies publication or consent rules, and writes to the target system. The workflow can use scheduled polling when no reliable callback is available.

Implementation sequence

Authenticate using the product-specific Granicus credentials or API key
Invoke the applicable REST endpoint
Follow documented pagination or continuation parameters
Retrieve related meetings, matters, people, bodies, or document references
Map the JSON response to the target model
Apply publication, consent, and ownership rules8. Upsert the target record using a stable

Common Granicus integration patterns

Pattern 1: Synchronize Legistar meetings and matters

When to use this pattern

Use this pattern when a public website, data warehouse, search index, or notification platform must reflect current civic-meeting information. It is appropriate when scheduled polling is the reliable trigger or when callbacks are not available for the required Legistar resources.

Integration direction
Legistar
Martini
SharePoint or public portal
Example Mapping
Granicus FieldCanonical FieldTarget Field
MeetingIdsourceMeetingIdexternalMeetingId
MeetingDatestartDateTimeeventStart
MatterIdsourceMatterIdagendaItemId
BodyNamegoverningBodycommitteeName
Martini implementation pattern

A scheduled Martini workflow retrieves changed or upcoming Meetings, follows related Matters, Bodies, People, and document references, then validates publication status and maps the result to a canonical civic-meeting model. It upserts by stable source identifiers, uses a bounded lookback window when change markers are limited, and retries transient API failures while quarantining invalid records.

Martini capabilities used
  • workflows
  • API consumption
  • scheduling
  • data mapping
  • business rules
  • error handling

Pattern 2: Synchronize GovDelivery subscribers and topics

When to use this pattern

Use this pattern when GovDelivery subscription state must align with a constituent or service application. Bidirectional synchronization requires explicit ownership rules so unsubscribe and consent changes are not unintentionally overwritten.

Integration direction
Salesforce or Microsoft Dynamics 365
Martini
GovDelivery
Example Mapping
Granicus FieldCanonical FieldTarget Field
SubscriberEmailemailAddressemail
SubscriberIdsourceSubscriberIdexternalSubscriberId
TopicIdsubscriptionTopicIdtopicId
SubscriptionStatusconsentStatusstatus
Martini implementation pattern

Martini receives source-application changes or polls both systems, normalizes email and subscription identifiers, applies consent ownership rules, and invokes the applicable GovDelivery API. It records source identifiers, performs idempotent upserts, detects conflicts, and routes permanent validation or authorization failures for review.

Martini capabilities used
  • workflows
  • API consumption
  • data mapping
  • validation
  • business rules
  • retry handling

Pattern 3: Publish meeting notifications

When to use this pattern

Use this pattern when newly published or changed Meetings and Matters should generate public communications. Rules can restrict notifications by meeting body, meeting type, publication status, agenda availability, jurisdiction, or meeting date.

Integration direction
Legistar
Martini
GovDelivery
Example Mapping
Granicus FieldCanonical FieldTarget Field
MeetingTitlenotificationSubjectmessageSubject
MeetingDateeventDatemessageBodyDate
BodyNameaudienceKeytopicId
AgendaUrlsourceDocumentUrlmessageLink
Martini implementation pattern

A Martini workflow retrieves eligible Legistar objects, evaluates whether the meeting is published and notification-worthy, renders the communication model, and calls the documented communications API. It stores a notification key to prevent duplicates, records the Granicus response, and retries transient failures without resending completed notifications.

Martini capabilities used
  • scheduling
  • API consumption
  • data transformation
  • business rules
  • idempotency
  • error handling

Pattern 4: Distribute civic documents

When to use this pattern

Use this pattern when meeting agendas, minutes, legislative documents, or related files must be archived or published in a document platform or cloud repository.

Integration direction
Legistar
Martini
Microsoft SharePoint or Amazon S3
Example Mapping
Granicus FieldCanonical FieldTarget Field
DocumentIdsourceDocumentIdexternalDocumentId
DocumentUrlsourceUrlsourceDocumentUrl
DocumentTypedocumentTypecontentType
PublicationDatepublishedAtarchiveDate
Martini implementation pattern

Martini retrieves document metadata and available download references, verifies authentication, publication status, content type, and size, then transfers or indexes the content. The workflow preserves meeting and matter relationships, applies version or content-hash logic where available, and records failures without losing source metadata.

Martini capabilities used
  • API consumption
  • file handling
  • data mapping
  • validation
  • workflow orchestration
  • monitoring

Applications commonly integrated with Granicus

Granicus products commonly participate in public-sector communication, civic records, document, analytics, and operational workflows. The exact integration scope depends on the Granicus product, tenant, API entitlement, and target application.

Application Scenario Direction Martini Pattern
Salesforce Synchronize constituent information, communication preferences, service interactions, and GovDelivery subscriptions. Salesforce → Martini → Granicus Martini can receive constituent or preference changes, validate consent and stable identifiers, transform them into the applicable GovDelivery model, and invoke Granicus APIs. Scheduled reconciliation can compare subscription state and route conflicts for review.
Microsoft Dynamics 365 Coordinate constituent or case information with public communications and subscription preferences. Microsoft Dynamics 365 → Martini → Granicus A Martini workflow can read changed contacts or cases, apply ownership and consent rules, update the relevant Granicus resources, and return status or exception information to Dynamics 365.
ServiceNow Connect operational service workflows with government notifications and communication processes. ServiceNow → Martini → Granicus Martini can trigger from ServiceNow events or schedules, map approved service information to Granicus communication requests, and record response identifiers and failures for operational follow-up.
Jira Track synchronization incidents, publication issues, and data-quality exceptions generated by Granicus workflows. Granicus → Martini → Jira Martini can classify API, validation, and publication failures, create or update Jira issues, preserve the source response, and avoid duplicate incident creation using a deterministic issue key.
Microsoft SharePoint Store or publish meeting documents, agendas, minutes, and related public records. Granicus → Martini → Microsoft SharePoint Martini can retrieve Legistar document metadata and available file references, validate publication status, transfer content or URLs to SharePoint, and preserve Granicus identifiers and relationships.
Microsoft Power BI Analyze meetings, matters, subscriptions, communications, and public-engagement activity. Granicus → Martini → Microsoft Power BI Martini can extract product-specific API data on a schedule, normalize it into reporting structures, load a warehouse or reporting layer, and expose consistent datasets for Power BI.
Amazon S3 Archive meeting documents, exports, and communication data for retention and downstream processing. Granicus → Martini → Amazon S3 A Martini workflow can retrieve documented files or exports, calculate or retain source metadata, apply naming and retention rules, and store content in S3 while recording processing status.
Mailchimp Coordinate public subscription and campaign information when an organization operates multiple communication channels. Granicus → Martini → Mailchimp Martini can reconcile subscriber consent and topic ownership between systems, normalize email values, prevent unintended unsubscribe overwrites, and route conflicts for business review.

How to build a Granicus integration in Martini

Objective

Confirm the Granicus product, tenant, API version, enabled resources, and authentication method before building the workflow.

Instructions in Martini

  • Identify whether the integration targets GovDelivery, Legistar, or another Granicus product
  • Confirm production and sandbox endpoints, API entitlement, and supported write operations
  • Store API credentials, keys, or account configuration in Martini secrets or environment configuration
  • Configure product-specific headers and authorization without embedding secrets in workflow logic

Objective

Select the trigger that matches the confirmed Granicus capability and the required freshness of the integration.

Instructions in Martini

  • Use a scheduler for general-purpose synchronization and Legistar polling
  • Use a documented Granicus callback only for confirmed event types
  • Define a bounded lookback window or source modification filter when available
  • Set concurrency and polling frequency according to confirmed product limits

Objective

Retrieve the required Granicus objects and related resources while preserving source identifiers and progress state.

Instructions in Martini

  • Call the applicable Granicus REST endpoint
  • Follow documented pagination or cursor parameters
  • Retrieve related Meetings, Matters, Bodies, People, Topics, or document references as required
  • Persist checkpoints, cursors, or the last successful synchronization boundary

Objective

Use a Martini workflow to coordinate calls, dependencies, branching, and downstream delivery.

Instructions in Martini

  • Sequence parent and related-resource retrieval where relationships are required
  • Separate transient API failures from authorization and validation failures
  • Use conditional routing for publication status, consent ownership, or product-specific rules
  • Queue or checkpoint long-running work when batch processing is available

Objective

Transform product-specific Granicus responses into a stable canonical model for target applications.

Instructions in Martini

  • Map JSON fields to canonical meeting, matter, subscriber, topic, message, or document structures
  • Normalize dates, identifiers, email values, URLs, and status values
  • Preserve Granicus source identifiers and relationship keys
  • Validate required fields and quarantine incomplete payloads

Objective

Apply business and privacy rules before writing to downstream systems or sending communications.

Instructions in Martini

  • Distinguish draft, published, canceled, postponed, and archived civic records where exposed
  • Protect unsubscribe and consent changes from unintended overwrites
  • Apply meeting body, date, jurisdiction, topic, and publication eligibility rules
  • Use stable identifiers and deterministic keys for idempotent processing

Common Granicus data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
SubscribersRepresent people or addresses subscribed to GovDelivery communications and support enrollment, reconciliation, and preference management.Salesforce, Microsoft Dynamics 365, Mailchimp, constituent platformsMartini preserves stable identifiers, normalizes contact values, applies consent ownership rules, and performs idempotent updates or reconciliation.
TopicsRepresent GovDelivery subscription destinations associated with public information subjects.Salesforce, Microsoft Dynamics 365, Mailchimp, reporting platformsMartini maps topic identifiers and membership separately from subscriber identity and prevents unintended overwrites of subscription choices.
MessagesRepresent outbound communications distributed through GovDelivery.ServiceNow, reporting warehouses, Power BI, operational archivesMartini can retrieve or submit product-supported message data, map statuses and metadata, and record source identifiers and delivery outcomes.
MeetingsRepresent scheduled public meetings and associated meeting metadata in civic-meeting products such as Legistar.Websites, public portals, SharePoint, data warehouses, notification platformsMartini polls or receives documented notifications, follows related references, maps publication states, and upserts using stable Granicus identifiers.
MattersRepresent legislative or agenda matters associated with meetings and public records.Public portals, search indexes, records repositories, reporting platformsMartini retrieves matters with related meeting context, validates publication rules, maps fields to a canonical civic-record model, and handles retries and validation failures.
PeopleRepresent individuals associated with legislative bodies, meetings, or matters.Public portals, constituent platforms, reporting warehousesMartini resolves identifiers and relationships, applies privacy and publication rules, and synchronizes only fields permitted for the target system.

Authentication and security considerations

Product-specific authentication

Granicus authentication varies across GovDelivery, Legistar, and other products. Confirm whether the target API requires credentials, an API key, HTTP authentication, tenant configuration, or another documented method.

Credential protection

Martini should store Granicus credentials and keys in secrets or environment configuration rather than embedding them in workflows. Access should be limited to the required tenant, jurisdiction, resources, and operations.

Data protection

  • Use TLS-protected endpoints and controlled integration environments.
  • Apply least-privilege permissions to integration accounts.
  • Limit logs containing subscriber, constituent, or document data.
  • Retain source responses and files only according to operational and privacy requirements.

Operational considerations for Granicus integrations

Pagination and incremental retrieval

Follow documented pagination or cursor parameters and checkpoint progress. Use modification timestamps, publication dates, stable identifiers, or a bounded lookback window where supported.

Rate limits and retries

Confirm limits for the applicable product. Use bounded concurrency, exponential backoff, HTTP 429 handling, and separate treatment for transient failures and permanent authorization or validation errors.

Idempotency and publication state

Upsert using stable Granicus identifiers rather than names or email addresses alone. Distinguish draft, published, canceled, postponed, and archived states before distributing civic records or notifications.

Documents and schema changes

Validate document authentication, content type, size, URL lifetime, and publication status. Use defensive mappings for optional fields, enumerations, product extensions, pagination changes, and API-version updates.

Why use Martini instead of scripts or point-to-point integrations?

Orchestrated integration logic

Scripts often combine authentication, pagination, mapping, retries, and business rules in code that is difficult to govern. Martini organizes these concerns in reusable workflows and APIs while retaining the option for custom logic when required.

Reliable synchronization

Martini can combine scheduled polling or documented callbacks with checkpoints, idempotent upserts, validation, retry policies, and operational logging. This is useful when Granicus capabilities differ by product and tenant.

Reusable enterprise services

Martini can expose controlled REST APIs for downstream applications, normalize Granicus data once, and route the resulting model to multiple targets such as portals, document repositories, reporting layers, and communication systems.

Frequently asked questions

How can Granicus be integrated with enterprise systems?

Granicus can be integrated primarily through product-specific REST APIs, including the Legistar Web API and applicable GovDelivery APIs. Depending on the product, integrations may also use scheduled polling, documented callbacks, bulk operations, exports, or file references. Authentication and available resources must be confirmed for the specific product, tenant, and API entitlement.

Can Martini integrate with Granicus?

Yes. Martini can consume the applicable Granicus REST APIs, schedule synchronization workflows, map Granicus JSON into enterprise data models, apply business rules, and deliver results to downstream systems. Where a product documents callbacks or webhook-style notifications, Martini can receive them through an exposed API workflow.

Do I need a connector to integrate Granicus with Martini?

No. A dedicated Granicus connector is not required. Martini can use Granicus's confirmed native integration mechanisms, such as product-specific REST APIs, documented callbacks, exports, or file interfaces, with credentials and endpoint details configured for the applicable product.

Is there any extra Lonti cost to integrate Granicus with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Granicus. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Granicus, cloud infrastructure, or other third-party systems depending on subscription, usage, and deployment model.

Which Granicus APIs or integration methods should be used?

REST APIs are the recommended starting point, with the Legistar Web API providing a documented civic-meeting interface and other Granicus products exposing product-specific APIs subject to access. Scheduled polling is broadly applicable. Bulk, file, callback, or export methods should be used only after confirming availability and semantics for the target product.

Can Martini receive Granicus webhooks or event notifications?

Only selectively. Some Granicus products may provide outbound callbacks or event notifications, but universal webhook coverage was not confirmed. Martini can receive documented callbacks through an API workflow; otherwise, scheduled polling with change markers, lookback windows, and idempotent upserts is the safer general pattern.

How does synchronization and data mapping work?

Martini workflows retrieve Granicus objects such as Meetings, Matters, Subscribers, Topics, Messages, People, and Bodies, then map them into canonical models for target systems. Stable source identifiers, pagination checkpoints, modification timestamps or bounded lookback windows, validation, and explicit ownership rules support reliable synchronization.

How are Granicus errors, retries, and duplicate records handled?

Martini can classify transient network, timeout, and rate-limit failures for retry with backoff, while preserving permanent authorization or validation failures for operational review. Idempotent upserts use stable Granicus identifiers, deterministic notification keys, checkpoints, and source-response logging to reduce duplicate processing.