Brachylog, 1111 6 bytes
-5 bytes thanks to Fatalize
ℤᵐ|{ċ|g}ᵐc↰ℤg|↰ᵐc
Explanation
Brachylog has a flatten-list builtin, but 1) it only flattens by one level and 2) it only works on a list of lists, not a mixed-type list. So we need a recursive solution.
ℤᵐ|{ċ|g}ᵐc↰
ᵐ Each element of the listℤg|↰ᵐc
ℤ If the argument is an integer,
g wrap it (andin outputa thesingleton list unchanged)
| OROtherwise:
{ }ᵐ↰ᵐ Recurse Foron each element of the list,
ċ it is a list
(and return it unchanged)
| OR
g wrap it in a singleton list
c Flatten this list of lists once
↰ and recurse onflatten the result once