Skip to content

Models

All models live in the Integrations\Models namespace.

Integration

The central model. Represents a configured connection to an external service.

Relationships

RelationshipTypeTarget
requests()hasManyIntegrationRequest
logs()hasManyIntegrationLog
mappings()hasManyIntegrationMapping
webhooks()hasManyIntegrationWebhook
owner()morphToPolymorphic (Team, User, etc.)

Methods

MethodDescription
request()Make an untyped API request
requestAs()Make a typed API request
to() / toAs()Fluent request builder
logOperation()Create an operation log entry
mapExternalId()Map an external ID to an internal model
resolveMapping()Resolve external ID to internal model
findExternalId()Find external ID for an internal model
getAccessToken()Get OAuth access token (auto-refreshes)
tokenExpiresSoon()Check if token needs refresh
refreshTokenIfNeeded()Explicitly refresh token
markSynced()Update sync timestamps
recordSuccess()Record a successful request
recordFailure()Record a failed request
credentialsArray()Get raw credentials array

Query scopes

ScopeDescription
ownedBy($model)Filter by polymorphic owner

IntegrationRequest

Represents a single API request/response.

Relationships

RelationshipTypeTarget
integration()belongsToIntegration
related()morphToPolymorphic (linked model)
retryOf()belongsToIntegrationRequest (original attempt)

Testing methods

MethodDescription
fake()Activate the testing fake
stopFaking()Deactivate the testing fake
assertRequested()Assert an endpoint was called
assertNotRequested()Assert an endpoint was not called
assertRequestedWith()Assert with custom assertion
assertRequestCount()Assert total request count
assertNothingRequested()Assert no requests were made

IntegrationLog

Represents an operation-level log entry (sync, import, webhook processing).

Relationships

RelationshipTypeTarget
integration()belongsToIntegration
parent()belongsToIntegrationLog
children()hasManyIntegrationLog

Query scopes

ScopeDescription
successful()Where status is success
failed()Where status is failed
forOperation($op)Filter by operation type
topLevel()Where parent_id is null
recent($hours)Created within the last N hours

IntegrationMapping

Maps external provider IDs to internal Eloquent models.

Relationships

RelationshipTypeTarget
integration()belongsToIntegration
internal()morphToPolymorphic (mapped model)

IntegrationWebhook

Stores received webhook payloads for audit and replay.

Relationships

RelationshipTypeTarget
integration()belongsToIntegration