Overview
Macondo Link Manager uses a two-tier organizational hierarchy to help you manage links effectively. Clients represent your customers or major projects, while campaigns provide sub-organization for specific marketing initiatives.Clients
Top-level organization for customers
Campaigns
Marketing initiatives under clients
Global Access
Shared across all agency users
Cascade Delete
Clean removal of nested data
Organizational Hierarchy
The system follows this structure:Clients are global entities shared across all users in the agency. They do not have individual ownership - any authenticated user can view and manage all clients.
Client Management
Creating Clients
Create a new client to represent a customer or project.API Endpoint
Request
The client name. Must be unique across all clients and at least 3 characters long.
Response
Returns201 Created with the client object:
Listing Clients
Retrieve all clients in the agency with aggregate statistics.API Endpoint
Response
Returns200 OK with an array of clients including counts:
Included Metrics
Total number of campaigns under this client
Total number of links associated with this client (including links in campaigns)
Viewing Client Details
Get information about a specific client.API Endpoint
Response
Updating Clients
Modify an existing client’s information.API Endpoint
Request
The new client name. Must still be unique and at least 3 characters.
Response
Returns200 OK with the updated client object.
Deleting Clients
Permanently remove a client and all associated data.API Endpoint
Response
Returns204 No Content on successful deletion.
Cascade Deletion Example
Campaign Management
Creating Campaigns
Create a campaign under a specific client.API Endpoint
Request
The campaign name. Must be at least 3 characters and unique within the client.
The UUID of the client this campaign belongs to. Client must exist.
Response
Returns201 Created with the campaign object:
Campaign names only need to be unique within each client. Different clients can have campaigns with the same name.
Campaign Name Uniqueness
Listing Campaigns
Retrieve campaigns with optional client filtering.API Endpoint
Query Parameters
Filter campaigns by specific client. If omitted, returns all campaigns.
Response
Included Metrics
Name of the client this campaign belongs to
Total number of links associated with this campaign
Viewing Campaign Details
Get information about a specific campaign.API Endpoint
Response
Updating Campaigns
Modify an existing campaign’s name.API Endpoint
Request
The new campaign name. Must be at least 3 characters and unique within the client.
You cannot change which client a campaign belongs to. If you need to move a campaign, you must create a new one under the desired client.
Response
Returns200 OK with the updated campaign object.
Deleting Campaigns
Permanently remove a campaign.API Endpoint
Response
Returns204 No Content on successful deletion.
Campaign Deletion Behavior
Example
Before deletion:Hierarchical Organization Benefits
Structured Analytics
The client-campaign hierarchy enables analytics at multiple levels:Agency Level
View metrics across all clients
Client Level
See performance for specific clients
Campaign Level
Analyze individual campaign results
Flexible Filtering
Filter links by:- All links across the agency
- Links for a specific client
- Links for a specific campaign
- Links with no campaign (client-level only)
Team Collaboration
Since clients and campaigns are global:- All team members see the same structure
- No permission complexities
- Consistent naming and organization
- Easy handoffs between team members
Use Cases
Agency Structure
Campaign Types
Common campaign organization patterns:- By Channel
- By Time Period
- By Product
- By Goal
- Social Media
- Email Marketing
- Paid Ads
- Influencer Partnerships
Error Handling
Common Errors
| Status Code | Error | Description |
|---|---|---|
404 | Client not found | The specified client doesn’t exist |
404 | Campaign not found | The specified campaign doesn’t exist |
409 | Client already exists | A client with this name already exists |
409 | Campaign already exists | A campaign with this name exists for this client |
400 | Invalid name | Name is too short (< 3 characters) |
401 | Unauthorized | Authentication required |
Example Error Responses
Client name conflict:Best Practices
Consistent Naming
Use clear, descriptive names for clients and campaigns
Logical Grouping
Group campaigns by channel, time, or product based on your needs
Archive Strategy
Consider a naming convention for archived campaigns (e.g., “[ARCHIVED] Campaign Name”)
Regular Cleanup
Periodically review and delete old campaigns to keep the list manageable
