## Bug description

From [a customer report](https://posthoghelp.zendesk.com/agent/tickets/653):

```
I'm accessing insight results through the API, and I’ve noticed that sometimes the result is null in the response.
When I go and view the insight in Posthog and tap “refresh” the result starts to return in the API response.
I’ve also noticed there is a “refreshing” boolean flag in the insight response.
How do I set the insight to either refresh periodically or on request so I always get a result through the API?
```

It seems like the insight returns null if it's not refreshed manually from the frontend.

## How to reproduce

1. Call an insight with GET | /api/projects/:project_id/insights/:id
2. Response is `null`
3. Refresh the insight from the frontend
4. Response is populated

## Environment

- [ ] PostHog Cloud
- [ ] self-hosted PostHog, version/commit: please provide

## Additional context


posthog/api/insight.py
"""
        When loading an insight for a dashboard pass a `from_dashboard` query parameter containing the dashboard ID
        e.g. `"/api/projects/{team_id}/insights/{insight_id}?from_dashboard={dashboard_id}"`
        Insights can be added to more than one dashboard, this allows the insight to be loaded in the correct context.
        Using the correct cache and enriching the response with dashboard specific config (e.g. layouts or colors)
        """
        instance = self.get_object()
        serializer_context = self.get_serializer_context()
        dashboard_tile: Optional[DashboardTile] = None
        dashboard_id = request.query_params.get("from_dashboard", None)
        if dashboard_id is not None:
            dashboard_tile = (
                DashboardTile.objects.filter(dashboard__id=dashboard_id, insight__id=instance.id)
                .select_related("dashboard")
                .first()
            )
        if dashboard_tile is not None:
            
            serializer_context.update({"dashboard": dashboard_tile.dashboard})
        serialized_data = self.get_serializer(instance, context=serializer_context).data
        if dashboard_tile is not None:
            serialized_data["color"] = dashboard_tile.color
            layouts = dashboard_tile.layouts
            
            if isinstance(layouts, str):
                layouts = json.loads(layouts)
            serialized_data["layouts"] = layouts
        return Response(serialized_data)