Jordan Fisher
04/15/2026, 8:47 AMMarvin
04/15/2026, 8:47 AMMarvin
04/15/2026, 8:49 AM<url|text> will appear as literal text (not clickable).
Ways to include links/rich content:
- Use a markdown artifact if you want a table with clickable links and formatting.
- Use link artifacts for single URLs.
- You can include raw URLs in table cells, but they’ll display as plain text in the table UI.
Examples
- Table artifact (URLs will show as plain text in cells):
from prefect import flow
from prefect.artifacts import create_table_artifact
@flow
def my_flow():
rows = [
{"name": "Alice", "profile": "<https://example.com/alice>"},
{"name": "Bob", "profile": "<https://example.com/bob>"},
]
create_table_artifact(
key="users-table",
table=rows,
description="Latest user profiles"
)
- Markdown artifact (use this for tables with clickable links and formatting):
from prefect import flow
from prefect.artifacts import create_markdown_artifact
@flow
def my_flow():
md = """# Users
| Name | Profile |
|------ |------------------------|
| Alice | <https://example.com/alice|View> |
| Bob | <https://example.com/bob|View> |
"""
create_markdown_artifact(
key="users-markdown",
markdown=md,
description="Users with clickable profile links"
)
- Link artifacts (good for prominent single links):
from prefect import flow
from prefect.artifacts import create_link_artifact
@flow
def my_flow():
create_link_artifact(
key="alice-profile",
link="<https://example.com/alice>",
link_text="Alice’s Profile",
description="Direct link to Alice"
)
References
- Docs: How to use artifacts
- Concepts: Artifacts concept
- API: prefect.artifacts API
- Source (artifact models): artifacts.py
- Source (UI table rendering): detail-table.tsx
If you share a quick example of what you want the table to look like, I can suggest the cleanest artifact setup.