Event Flows
Ollie participates in FloatMe’s request flow in one primary way: it receives inbound API requests from mobile clients and internal services and drives a synchronous enrichment pipeline through external services before creating a ticket in Zendesk.
Ticket Creation Flow
The POST /{user_id}/ollie/tickets endpoint orchestrates a series of service calls to enrich the ticket with user context before submission.
Client sends POST /{user_id}/ollie/tickets
│
▼
API Gateway (prod-ollie, AWS IAM)
Validates SigV4 signature
│
▼
prod-ollie-api Lambda invoked
Parse and validate request body
(subject, description, reason, tags, optional attachment)
│
▼
User Service
Fetch user profile: first name, last name, email, membership tier
│
▼
Zendesk
Look up user by email
Not found ──► create Zendesk user record
Found ──► continue with existing requester ID
│
▼
Underwriting Service
Check float eligibility
Eligible ──► apply float-related tags
│
▼
LOC Service
Check for active installment loan
Eligible ──► apply `installment_loan` tag
Active loan ──► apply `has_active_installment_loan` tag
│
▼
Build final tag set
Caller-supplied tags + derived tags (premium_member, income, loan tags)
│
▼
Attachment present?
Yes ──► Upload base64-decoded file to Zendesk
Receive upload token
No ──► continue
│
▼
Zendesk
Create ticket with:
Custom fields: first name, last name, email, user ID, reason
Tags: full assembled tag set
Attachment token (if present)
│
▼
Emit Datadog metric: floatme.ollie.ticket.created
Return ticket response to caller
Tag Enrichment
Tags are assembled from caller-supplied values and context derived from upstream services.
| Tag | Source | Applied when |
|---|---|---|
Caller-supplied tags |
Request body |
Always — passed through as-is |
|
User Service (membership tier) |
User holds a premium membership |
|
User Service (membership tier) |
User has income verification on their account |
|
LOC Service |
User is eligible for an installment loan |
|
LOC Service |
User currently has an active installment loan |
|
Ollie API (internal) |
Ticket is being escalated to a human agent rather than handled automatically |
| Tag enrichment failures for individual upstream services do not block ticket creation — the ticket is submitted with the tags that were successfully resolved. |
Zendesk Macros
Ollie applies pre-defined Zendesk macros to handle common cancellation scenarios automatically. Macros are selected based on the user’s float status at the time of the request.
| Macro | ID | Scenario |
|---|---|---|
|
13970893004951 |
Standard account cancellation with no active float complications |
|
13970657740439 |
Cancellation requested while user has an active float |
|
11760573801751 |
Cancellation requested while user has a defaulted float |
|
14788222345879 |
Cancellation requested while user’s float is in retry collection |
Ticket Categories Flow
GET /{user_id}/ollie/ticket-categories is a lightweight read from Zendesk with no enrichment pipeline.
Client sends GET /{user_id}/ollie/ticket-categories
│
▼
API Gateway (prod-ollie, AWS IAM)
Validates SigV4 signature
│
▼
prod-ollie-api Lambda invoked
│
▼
Zendesk
Fetch custom field ID 360051067473
Return predefined option values
│
▼
Return name-value pairs to caller
(used for category dropdown in mobile UI)
Related Pages
-
Architecture — System context diagram and component overview
-
Feature Summary — Categorized feature reference including automation and macro details
-
API Specification — Full OpenAPI spec for both endpoints