Company Management

Manage architectural firms participating in BATbern conferences

Last updated: June 13, 2026 Reading time: 7 minutes File size: 10.11 KB

Implemented

Last Updated: 2026-06-13

Overview

Companies represent architectural firms in Switzerland and internationally that participate in BATbern conferences. Each company has employees (users) who can register as speakers or attendees.

Key Features

  • โœ… Swiss UID Validation - Real-time validation of Swiss company identifiers
  • โœ… Logo Upload - Direct S3 uploads using presigned URLs
  • โœ… Search & Autocomplete - Fast company lookup by name or UID
  • โœ… Employee Tracking - Link users to their companies
  • โœ… Location Management - Canton, city, address information

Creating a Company

Navigate to Companies

Click ๐Ÿข Companies in the left sidebar.

Click โ€œCreate New Companyโ€

Click the + Create New Company button (top-right).

Fill Required Fields

Complete the company creation form:

Basic Information:

  • Name* - Legal name (e.g., โ€œMรผller Architekten AGโ€) - used as internal identifier
  • Display Name - Optional public-facing name (defaults to Name if not provided)
  • Swiss UID* - CHE-xxx.xxx.xxx format (Swiss companies only)
  • Country* - Switzerland or international
  • Canton - For Swiss companies (ZH, BE, VD, etc.)
  • City - Headquarters location

Contact Information:

  • Email - General company email
  • Phone - Primary contact number
  • Website - Company website URL

Additional Details:

  • Employee Count - Approximate number of employees
  • Year Founded - Company establishment year
  • Description - Brief company overview (optional)

Upload Company Logo (Optional)

Click Upload Logo to add a company logo:

  1. Click Choose File
  2. Select PNG, JPG, or SVG file (max 2MB)
  3. Logo is uploaded directly to S3 via presigned URL
  4. Thumbnail appears immediately after upload

Save

Click Save to create the company.

Success message appears: โ€œCompany โ€˜Mรผller Architekten AGโ€™ created successfullyโ€

Swiss UID Validation

Implemented

Swiss companies must provide a valid UID (Unternehmens-Identifikationsnummer) - the official Swiss business identifier.

Format Requirements

Valid Format: CHE-XXX.XXX.XXX

Where:

  • CHE = Swiss prefix (constant)
  • XXX.XXX.XXX = 9-digit number with dots

Examples:

  • โœ… Valid: CHE-123.456.789
  • โœ… Valid: CHE-100.000.001
  • โŒ Invalid: CHE123456789 (missing dots)
  • โŒ Invalid: CHE-123456789 (missing dots)
  • โŒ Invalid: ABC-123.456.789 (wrong prefix)
  • โŒ Invalid: CHE-12.345.678 (wrong digit count)

Real-Time Validation

The Swiss UID field validates as you type:

Swiss UID *
[CHE-123.456.789    ] โœ… Valid Swiss UID
Swiss UID *
[CHE123456789       ] โŒ Invalid format. Use CHE-XXX.XXX.XXX

UID Registry

Planned

Future releases will integrate with the Swiss UID Registry API to:

  • Verify UID exists in official registry
  • Auto-populate company name and address
  • Check UID status (active, dissolved, etc.)

Logo Upload

Implemented

Companies can upload logos for branding and recognition.

Upload Process

Request Upload URL

System requests a presigned S3 URL from the backend.

Upload Directly to S3

File is uploaded directly to S3 (not through backend), reducing server load.

Confirm Upload

Backend confirms successful upload and saves logo URL to company record.

File Requirements

  • Formats: PNG, JPG, SVG
  • Max Size: 2MB
  • Recommended Dimensions: 400x400px (square)
  • Aspect Ratio: 1:1 or 16:9

Logo Display

Logos appear in:

  • Company directory listings
  • Event partner showcases
  • Speaker profile pages (showing speakerโ€™s company)
  • Email communications Planned

Searching Companies

Implemented

Use the search box at the top of the company list:

๐Ÿ” [Mรผller]

Searches across:

  • Company name (both internal name and display name)
  • Swiss UID
  • City
  • Canton

Advanced Filters

Use JSON-based filters for complex queries:

Filter by Canton:

canton:ZH

Filter by Employee Count:

employees:>100

Multiple Filters:

canton:ZH
employees:>50
verified:true

Autocomplete

Implemented

When creating users or speakers, company fields provide autocomplete:

Company
[Mรผl____________]
   Mรผller Architekten AG (CHE-123.456.789)
   Mรผller & Partner GmbH (CHE-987.654.321)

Type 2+ characters to trigger suggestions.

Editing a Company

Find the Company

Use search or browse the company list.

Click Edit

Click the ๐Ÿ“ Edit icon in the company row.

Modify Fields

Update any editable fields. Note:

  • Swiss UID cannot be changed once set (prevents fraud)
  • Logo can be replaced (old logo deleted from S3)

Save Changes

Click Save Changes to persist updates.

Deleting a Company

โš ๏ธ Warning: Deleting a company does NOT delete associated users. Users will have their company reference cleared.

Click Delete

Click the ๐Ÿ—‘๏ธ Delete icon in the company row.

Confirm Deletion

A confirmation dialog appears:

Delete Company?
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
Are you sure you want to delete
"Mรผller Architekten AG"?

This will:
- Remove the company from the directory
- Clear company association for 45 employees
- Delete the company logo from S3

This action cannot be undone.

[Cancel]           [Delete]

Click Delete (red button) to confirm.

Cascade Effects

After deletion:

  • Company record is removed
  • Company logo is deleted from S3
  • User company references are set to NULL
  • Event partnerships remain (historical record)

Company Employees

Viewing Employees

Company detail view shows linked employees:

Employees (45)
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
Name                  | Role       | Actions
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
Hans Mรผller          | ORGANIZER  | ๐Ÿ‘๏ธ ๐Ÿ“
Anna Schmidt         | SPEAKER    | ๐Ÿ‘๏ธ ๐Ÿ“
Peter Meier          | ATTENDEE   | ๐Ÿ‘๏ธ ๐Ÿ“

Click View All Employees to see the complete list.

Linking Users to Companies

Users are linked to companies during:

  1. User Creation - Select company from autocomplete dropdown
  2. User Profile Update - Change company affiliation
  3. User Sync - Automatic sync from Cognito user attributes

See User Management for details.

Company Statistics

Planned

Company detail view will show:

  • Total Employees: Active users linked to company
  • Speakers: Employees registered as speakers
  • Attendees: Employees registered for events
  • Event Participation: Historical attendance by year
  • Topics Presented: Topics covered by company speakers

Export & Import

Planned

Export Companies

Export company directory to CSV/Excel:

[๐Ÿ“ฅ Export]
   โ”œโ”€ Export All (237 companies)
   โ”œโ”€ Export Filtered (42 companies)
   โ””โ”€ Export Selected (5 companies)

Import Companies

Bulk import from CSV:

[๐Ÿ“ค Import Companies]

Upload CSV file with columns:
- name, swiss_uid, country, canton, city, email

Validation:
- Duplicate UIDs rejected
- Invalid formats flagged
- Success rate shown (e.g., "185/200 imported")

Common Issues

โ€œInvalid Swiss UID formatโ€

Problem: UID doesnโ€™t match CHE-XXX.XXX.XXX format.

Solution:

  • Ensure dots are included: CHE-123.456.789
  • Verify 9 digits total (3 groups of 3)
  • Use uppercase CHE prefix

โ€œSwiss UID already existsโ€

Problem: Another company has the same UID.

Solution:

  • UIDs must be unique in the system
  • Check if company already exists (use search)
  • Contact support if you believe this is an error

โ€œLogo upload failedโ€

Problem: Logo couldnโ€™t be uploaded to S3.

Solution:

  • Check file size (must be โ‰ค 2MB)
  • Verify file format (PNG, JPG, SVG only)
  • Try again (presigned URL may have expired)
  • Check network connectivity

See File Upload Troubleshooting for more details.

API Reference

Endpoints

POST   /api/companies              Create company
GET    /api/companies              List companies (paginated)
GET    /api/companies/{id}         Get company by ID
PUT    /api/companies/{id}         Update company
DELETE /api/companies/{id}         Delete company
POST   /api/companies/{id}/logo    Request presigned URL for logo upload

Resource Expansion

GET /api/companies/123?expand=employees

{
  "id": "123",
  "name": "Mรผller Architekten AG",
  "swissUid": "CHE-123.456.789",
  "employees": [
    { "id": "456", "name": "Hans Mรผller", "role": "ORGANIZER" },
    { "id": "789", "name": "Anna Schmidt", "role": "SPEAKER" }
  ]
}

See API Documentation for complete specifications.