Swapcard collects and records various types of data related to integrations:
Structured log events from connectors:
Data flow
Errors
Calls to external system APIs
These data are useful for:
Monitoring and troubleshooting connectors
Performing audits
Accessing Logs
Integration logs can be accessed via the Swapcard Studio interface. Navigate to the specific integration page to view the connector logs.
Commons Error Logs
Firstname name is required for profile [Client ID] to be created
This error occurs when the connector is trying to create a profile without a first name. The first name is a required field for creating a profile in Swapcard.
Lastname name is required for profile [Client ID] to be created
This error occurs when the connector is trying to create a profile without a last name. The last name is a required field for creating a profile in Swapcard.
Email is required for profile [Client ID] to be created
This error occurs when the connector is trying to create a profile without an email address. The email address is a required field for creating a profile in Swapcard.
The email is not valid
This error occurs when the connector is trying to create a profile with an invalid email address. The email address must be in a valid format to create a profile in Swapcard.
Example of NOT valid email: john.doe@example
or john@doe.cpm
The organization is invalid
This error occurs when the connector is trying to create a profile with an invalid organization. The organization must be a valid string to create a profile in Swapcard.
Usually happend when the organization is containing url or other invalid characters.
This email is already used by profile id [Event Profile ID] in the event
This error occurs when the connector is trying to create a profile with an email address that is already used by another profile in the same event. The email address must be unique for each profile in an event.
Cannot change user of an existing community profile. Client ID [Client ID] is used by event profile ID [Event Profile ID] which is linked to a different user with ID [User ID] (email: [User Email])
This error occurs when the connector is trying to update a profile with a different Client ID
than the one who was orginally linked to the profile.
One option to resolved this issues is to enabled the force conflict ids
option in the connector settings.
If you want to understand more about client id, please refer to the connectors documentation or contact the Swapcard support team.
Format
Log events are formatted in standard JSON format, like the example below:
{ "event": "Log event type", "data": { // Specific data related to the event; this section is optional and varies by event. }, "created": "Event creation timestamp in UTC", "connector_type": "Connector type", "connector_id": "Connector ID", "connector_name": "Connector name", "sync_id": "UUID of the Sync identifier" }
FIELD | DESCRIPTION |
| Name of the event |
| Severity level of the event; can be |
| Optional object holding data specific to the event type; varies by event |
| Timestamp of event creation in UTC |
| Type of connector |
| Identifier for the connector |
| Name of the connector |
| UUID serving as a sync identifier |
Log Event Types
Event Type | DESCRIPTION |
| Marks the start of a synchronization process with Swapcard |
| Indicates the end of a synchronization process with Swapcard |
| Recorded when a connection attempt with an external system is successful |
| Logged when a connection attempt with an external system fails |
| API calls made to an external system the connector is interacting with |
| Indicates data has been inserted into Swapcard during the sync process |
| Indicates data has been updated within Swapcard during the sync process |
| Logged when data is modified in any way within Swapcard during the sync process |
| Recorded when a badge is scanned during the Visit connector sync process |
Log Data Types
api_call
"data" : { "url": "https://api.example.com/data", "method": "GET", "body": null, "statusCode": 200, "isRetry": false, "retryAttempt": 0, "error": "Optional error message" }
FIELD | DESCRIPTION |
| The endpoint URL |
| HTTP method used for the API call |
| Optional request body content |
| HTTP status code of the response |
| Indicates if the call was a retry |
| Number of times the call was retried |
| Optional error message |
sync_started
"data" : { "startedAt": "2023-05-10T12:34:56Z" }
FIELD | DESCRIPTION |
| Timestamp marking the start of sync |
sync_end
"data" : { "endedAt": "2023-05-10T13:34:56Z" }
FIELD | DESCRIPTION |
| Timestamp marking the end of sync |
connection_successful
"data" : { "id": "12345", "message": "Connection established successfully" }
FIELD | DESCRIPTION |
| Unique identifier for the connection |
| Description of the connection status |
connection_failure
"data" : { "id": "12345", "message": "Failed to establish connection" }
FIELD | DESCRIPTION |
| Unique identifier for the connection |
| Description of the connection status |
insert_data for people
"data" : { "destination": "people", "record": { "firstName": "John", "lastName": "Doe", "email": "john.doe@example.com", "clientId": "12345" }, "error": "Optional error message" }
FIELD | DESCRIPTION |
| Destination for the data insertion. Choices include: PEOPLE, SESSION, EXHIBITOR, ITEM, DOCUMENT_OR_LINK |
| Contains |
| Optional error message if the data insertion fails |
insert_data for exhibitor
"data" : { "destination": "exhibitor", "record": { "name": "Expo Center", "clientId": "67890" }, "error": "Optional error message" }
FIELD | DESCRIPTION |
| Destination for the data insertion specific to exhibitors. |
| Contains |
| Optional error message if the data insertion fails |
update_data for people
"data" : { "destination": "PEOPLE", "record": { "firstName": "Jane", "lastName": "Smith", "email": "jane.smith@example.com", "clientId": "54321" }, "error": "Optional error message" }
FIELD | DESCRIPTION |
| Destination for the data update. Choices include: PEOPLE, SESSION, EXHIBITOR, ITEM, DOCUMENT_OR_LINK |
| Contains |
| Optional error message if the data update fails |
modify_data for people
"data" : { "destination": "people", "operationType": "REPLACED_OR_INSERTED", "record": { "firstName": "Alice", "lastName": "Johnson", "email": "alice.johnson@example.com", "clientId": "98765" }, "count": 1, "error": "Optional error message" }
FIELD | DESCRIPTION |
| Destination for the data modification. Choices include: PEOPLE, SESSION, EXHIBITOR, ITEM, DOCUMENT_OR_LINK |
| Type of operation performed on the data, e.g., REPLACED_OR_INSERTED |
| Contains |
| Number of records affected by the modification |
| Optional error message if the data modification fails |
scan_badge (Only for Visit connector)
"data" : { barcodeScanned: 'y1kcg0n8e6d', requester: { id: 'Q29tbXVuaXR5UHJvZmlsZV8zNzAzNjQ2Ng==', firstName: 'John', lastName: 'Doe', email: 'test@test.com' }, error: "{\"errorCode\":\"unprocessableEntity\",\"errors\":[{\"description\":\"Invalid code provided\",\"error\":\"invalid\",\"field\":\"code\"}]}\", connectionCommunityProfileId: "Q29tbXVuaXR5UHJvZmlsZV8yMzk1NzUw" }
FIELD | DESCRIPTION |
| The scanned barcode value |
| The unique identifier of the requester |
| The first name of the requester |
| The last name of the requester |
| The email address of the requester |
| The error message returned by VISIT API in JSON format |
| The community profile identifier of the badge being scanned |
Data Retention
Swapcard retains integration logs for a period of 30 days. After this period, the logs are automatically deleted.
Troubleshooting
If you encounter any issues with integration logs, please contact the Swapcard support team for assistance.